回答
git revert commit_hash
它还原给出承诺。请注意,还原是另一种提交,它放弃commit_hash的更改,不从存储库中删除给定的提交。
我可能会创建一个新的分支从提交3
git checkout -b commit3
,然后变基从主提交
http://git-scm.com/docs/git-rebase
当然,你正在使用的特性分支,让您的开发分支分开,直到你知道他们是一个好主意,对吧?
如果犯4和5只在您的仓库,并没有被推向或拉其他任何版本库,你可以简单地说:
的git的复位 - 硬SHA1_HASH_OF_COMMIT_3
你可以通过使用git log
找出提交的SHA1哈希,或者您可以使用更高级的命名技术,请参阅git help rev-parse
,特别是“指定修订”一节。
使用此命令会使分支尖端的提交4和5不可用。然而,这些提交将不会丢失,因为这些提交保存在分支的reflog中。您可以使用git reflog
来标识无法访问的提交。然后可以用另一个git reset --hard
完成恢复。此页面here描述一切都很好。
建议您定期运行git gc
;一些命令也会自动为您执行此操作。这本质上是对存储库执行“内务管理”,比如“压缩文件修订(减少磁盘空间并提高性能)并删除不可达的对象”。无法访问的对象将在30天后(缺省值)从存储库中删除。这可以使用配置选项gc.reflogExpireUnreachable
进行更改。
“,直到你运行'git gc'”是误导 - 它会自动调用,用户通常不需要运行它。提交也不会被视为无法访问,只要它在reflog中,这需要90天过期。即使您删除分支(并使用它的引用日志),默认情况下也只是修剪超过30天的对象。 Upshot:它不会很快消失。 – Cascabel 2010-08-08 18:44:50
@Jefromi我同意,这是误导。道歉相当匆忙的答案。我更详细地更新了我的答案。 – 2010-08-09 18:00:27
- 1. 撤销在TortoiseSVN的提交
- 2. 是否可以撤销hg清除?
- 3. 是否可以撤销AWS Cognito IdToken?
- 4. 撤销上次提交/合并
- 5. 撤销Subversion在NetBeans中的提交
- 6. 撤销更改(提交并推送)
- 7. 撤销git merge几次提交前
- 8. svn撤销旧提交,保留新提交
- 9. ios_distribution.cer被撤销,我可以提交给AppStore吗?
- 10. 是否有可能以某种方式撤销mv命令的结果?
- 11. Git的撤销合并是删除未提交的修改
- 12. 如何撤销“丢弃”如果没有提交
- 13. 撤销iOS证书撤销
- 14. JWT令牌撤销是否值得?
- 15. 是否有可能在过去推送提交树中插入新提交?
- 16. 是否有可能撤消有效的SSL证书
- 17. 是否可以在Git Web UI提交中撤销特定文件中的更改?
- 18. 是否可以在不更改工作副本的情况下撤销SVN提交?
- 19. 是否可以使用JavascriptMVC实现撤销/重做引擎?
- 20. 是否可以撤销sftp/ssh上的已删除文件?
- 21. 是否可以使用C#在Excel中执行撤销/重做?
- 22. 是否有可能使git svn dcommit导致单个svn提交?
- 23. 是否有可能枚举git log中的提交?
- 24. 是否有可能强制cvs提交未更改的文件?
- 25. 是否有可能在python提交后回滚sqlite3更改
- 26. 是否有可能只'下拉'下一个提交?
- 27. 是否有可能在git中推出4个5提交?
- 28. 是否有可能获得最后拉的提交数量?
- 29. 是否有可能从GitHub上的最新提交安装Homebrew?
- 30. 是否有可能被压扁提交的历史记录
如果您推送到公共存储库,我会与恢复。否则任何其他选项都可以。 – xenoterracide 2010-08-09 06:01:32