重新创建Git Branch而不提交1次

时间:2017-12-14 18:44:04

标签: git

在我工作的一个庞大的项目中并使用git,有一个团队已经为一个巨大的功能工作了3个月。在那个时期的第二个月,一位开发人员以某种方式设法在功能分支中创建了一个提交,其中所有文件都暂存,没有任何更改。

当我们尝试将此功能分支合并到主功能分支时,这会导致一个巨大的问题。

有没有办法在没有那次错误提交的情况下重新创建所有3个月的提交?

2 个答案:

答案 0 :(得分:1)

使用git-revert

git revert <errantcommithash>

这将撤消错误提交中发生的任何事情,并将这些更改作为新提交提交。

答案 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