假设我们有一个仓库和5次提交:
- 提交1
- 提交2
- 提交3
- 提交4
- 提交5
git revert commit_hash
这个命令会撤销指定的提交。注意,撤销是另一个提交,它会丢弃来自commit_hash的更改,而不是从存储库中删除给定的提交。
建议您定期运行git gc
;有些命令也会自动为您执行此操作。这基本上是对存储库进行“清理”,例如“压缩文件修订(以减少磁盘空间并提高性能)并删除无法访问的对象”。默认情况下,无法访问的对象将在30天后从存储库中清除。可以使用配置选项gc.reflogExpireUnreachable
更改此设置。
git gc
”是误导性的 - 它会自动调用,用户通常不需要运行它。只要提交在reflogs中,就不会被视为无法访问。reflogs需要90天才能过期。即使您删除了分支(以及其reflogs),默认设置也仅清除30天以上的对象。总之:它不会很快消失。 - Cascabel我会从提交记录3创建一个新的分支。
git checkout -b commit3
然后从那个提交中重新设置主分支
http://git-scm.com/docs/git-rebase
当然,你正在使用主题分支将开发分支保持分离,直到确定它们是一个好主意,对吗?