4

我正在查看最后 10 次左右的推送,我想退出其中的 4 次(不连续)。

我怎样才能做到这一点?

在 SVN 中,这将是恢复更改并将“撤消”的更改推回的问题。不确定如何在 Git 中执行此操作。

4

2 回答 2

10

您可以git revert <commit>在不重写历史记录的情况下恢复有问题的提交。这将创建一个撤消这些提交的新提交。

而不是<commit>您使用要还原的每个提交的 SHA。

于 2012-12-09T01:00:16.200 回答
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

于 2012-12-09T01:07:19.333 回答