Git从合并请求中删除不需要的提交

我已经开始了一个项目的工作,我做了一些不必要的提交,我把它们推给了起源大师。 现在,当我尝试执行pull请求时,Github想要提交所有以前的提交。

我的问题是,我如何删除不需要的提交,并提交我想要提交的更改,以便与主服务器保持最新?

我假设你的出身是你自己的一个项目的分支,你也想做一个拉动的请求呢?

既然你会改变历史(通过重新设置头)你将需要推 – 强制标志。 使用git log查找最后一次良好提交的散列。

现在运行

 git reset SHA 

这将改变你的头,并保留文件中的变化,因为最后一个好的提交,你的索引也将被重置。

现在你可以改变你的代码,并做你想要的提交。 但是你必须做git push --force因为你改变了版本库的历史。 这意味着任何分叉你的存储库的人将无法再从你那里取得改变。 但是你可以向你的上游做拉请求。

如果你使用git gui,转到git gui并想象你的分支历史。 (在进行下一步之前,备份要推送的本地更改)右键单击分支要重置为主的点,然后单击重置。 重置后,在命令行中键入git push -f现在在分支中进行必要的更改,再次提交n。 如果您现在创build一个拉取请求,那么在分支重置之后它将只有新的提交。