在我工作的一个庞大的项目中并使用git,有一个团队已经为一个巨大的功能工作了3个月。在那个时期的第二个月,一位开发人员以某种方式设法在功能分支中创建了一个提交,其中所有文件都暂存,没有任何更改。
当我们尝试将此功能分支合并到主功能分支时,这会导致一个巨大的问题。
有没有办法在没有那次错误提交的情况下重新创建所有3个月的提交?
答案 0 :(得分:1)
答案 1 :(得分:0)
最安全的方法是
$ git revert <commit>
其中<commit>
是有问题提交的SHA1哈希值。
如果要完全从历史记录中删除提交,则可以使用git rebase
。如果feature
是具有工作的分支,则执行以下操作:
$ git checkout feature
$ git rebase --onto <commit>~ <commit>
请注意,这将从提交到现在重写整个历史记录。这意味着每个开发人员现在都必须获取feature
分支并重置为该分支,而不是执行git pull
:
$ git checkout feature
$ git fetch origin feature
$ git reset --hard origin/feature