我在远程存储库中有一个项目,与本地存储库(开发)和服务器(产品)同步。我一直在进行一些已提交的更改,这些更改已经推送到远程并从服务器中拉出。现在,我想撤消这些更改。所以我可以git checkout在更改之前提交并提交新的更改,但我猜测将它们再次推送到远程会有问题。关于我应该如何进行的任何建议?
git checkout
您可以通过以下方式恢复单个提交:
git revert <commit_hash>
这将创建一个新的提交,它会还原您指定的提交的更改。请注意,它只恢复该特定提交,而不是之后的提交。如果你想恢复一系列提交,你可以这样做:
git revert <oldest_commit_hash>..<latest_commit_hash>
它会还原所有提交后<oldest_commit_hash>的所有提交,包括<latest_commit_hash>. 在某些版本的 git 上,它还会还原<oldest_commit_hash>,因此请仔细检查该提交是否被还原。您始终可以使用g reset --hard HEAD~.
<oldest_commit_hash>
<latest_commit_hash>
g reset --hard HEAD~
要知道提交的哈希值,您可以使用git log.
git log
查看git-revert 手册页以获取有关该git revert命令的更多信息。另外,请查看此答案以获取有关恢复提交的更多信息。
git revert