我正在看最后10次左右的推动,我想退出其中的4个(不连续)。
我该怎么做?
在SVN中,这将是一个恢复更改并将“撤消”更改推回的问题。不确定如何在Git中执行此操作。
答案 0 :(得分:10)
使用git revert <commit>
还原违规提交而不重写历史记录。这将创建一个撤消这些提交的新提交。
而不是<commit>
,而是使用要恢复的每个提交的SHA。
答案 1 :(得分:1)
@ ThiefMaster的答案很有效。
作为替代方案,如果它不是共享远程分支(意味着如果没有其他人撤消您的更改),您可以git rebase -i HEAD~10
。这将打开$ EDITOR中最后10个提交的列表。只需删除不再需要的提交,保存文件,然后git push -f
强制推送并覆盖远程分支上的历史记录。
优势:它让历史更加清晰。
缺点:您可能不希望清理历史记录并希望在git历史记录中捕获恢复提交。
有关互动式变基的更多内容:http://git-scm.com/book/en/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages