强制比较两个分支

时间:2015-09-21 18:26:00

标签: git merge

我有一个名为master的分支和一个名为feature的分支。一周前,我将feature合并到master,但后来意识到该功能尚未准备好,所以我revert编辑了合并。

现在我已准备好再次将feature合并到master,但只合并了一些文件 - 因为Git正在查看历史记录,并认为主人revert应该优先,不包括我真正想要的feature中存在的一堆文件。

我想要的是一种交互式查看两个分支之间的差异并选择我想要保留哪些文件,处理任何合并冲突等的方法。但是git merge拒绝承认它们之间的任何差异两个分支。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

我发现这个有趣Git revert

关于这个问题的美妙之处在于,git revert的最佳功能是创造问题。从git reset使用git revert的最大优点是

  

它不会更改项目历史记录,这使其成为“安全”   已发布到共享的提交的操作   库。有关更改共享历史记录的详细信息   危险,请参阅git重置页面。

git revert本身就是一个提交。你应该使用git reset --hard,我猜你有理由使用git revert。

  

理解git revert撤消单个提交它很重要   不会通过删除“恢复”回到项目的先前状态   所有后续提交。

在推送提交之前撤消合并。

git revert -m 1 <commit> 

但请记住这里真正的问题是,你必须在你想再次提交brach之前还原revert,或者再次重新合并它。

无论如何,我在这个星球上找到了一个很棒的人,他详细解释了同样的问题。是的,完全相同的问题。我很高兴在这里介绍他:

Linux Torvalds explaining the git-revert conflict

  

我有一个主分支。我们有一个分支       开发人员正在开展工作。他们声称已做好准备。我们合并它       进入主分公司。它打破了一些东西,所以我们还原合并。       他们对代码进行了更改。他们说到了这一点       没关系,我们再次合并。

     

检查后,我们发现在还原之前进行了代码更改   不在master分支中,但是在master之后代码更改   分支。

这也可以帮到你:

Re-doing a reverted merge in Git