我向github上的git repo提出了一个拉取请求。这个拉取请求包括对三个文件的修改。
*提交#49090b3 - 变更日志提交
所以我搞砸了,忘了整理我的代码,所以#1和#2提交没有通过Travis测试。所以#1和#2的提交没有通过Travis测试。
后来我把这两个文件中的代码整理好了,放在了我的本地仓库里。现在我想知道如何将这两个文件干净利落地提交到拉取请求中。我想我必须修改之前的两个提交,但我不太确定什么是最好的方法。我相信我会把事情搞砸,让自己头疼一个小时,我希望能避免这种情况。
你可以在这里使用rebase来修改历史,或者压制你的提交。你有几个选择。
编辑 "的描述。e, edit <commit> = use commit, but stop for amending
. 你可以用它来修复你在提交 2 和 3 中的掉线或其他问题,然后将它们再次包含在这些提交中。
git rebase -i HEAD~3
# use "e" or "edit" for commits 1 and 2
# adjust them as necessary, then git rebase --continue each time
你会失去提交消息的颗粒度,但这也是一个快速而简单的解决问题的方法。
git rebase -i HEAD~3
# choose "s" or "squash", or "f" or "fixup" which is like squash but discards commit
# messages
您还可以 git reset target-branch-name
会进行软重置,保留您在分支和 target-branch-name
但重新设置你的提交。然后,你可以把所有的代码修整在一起,然后按照你的意愿重新提交。
所有这些建议都需要强制推送,因为你已经重写了本地分支的历史。