如何在git rebase中的“合并冲突”期间查看更改

时间:2009-09-30 06:35:52

标签: git

我删除了工作目录中的文件。然后我做了一个'git pull'。 我团队中的另一个人修改了同一个文件并将'git push'修改为HEAD。

所以,当我做'git rebase'时,我会遇到类似'CONFLICT git(delete)'的合并冲突

我的问题是如何才能找出团队中的其他人对我删除的文件所做的更改?

谢谢。

3 个答案:

答案 0 :(得分:7)

如果在合并或rebase期间发生冲突,则可以从以下位置获得不同版本的文件:

  • 各自的分支机构:

    $ git show HEAD:path/to/file
    $ git show branch:path/to/file
    
  • 作为索引中的第1,2,3阶段:

    $ git ls-files --unmerged  
    # ...
    $ git show :1:path/to/file
    $ git show :2:path/to/file
    

还有“git diff --cc”和“git log --merge”等工具。

有关详细信息,请参阅文档。

答案 1 :(得分:4)

Git将存储库中上游分支的状态副本保存为“远程跟踪”分支。如果您执行git branch -r,您将看到所有远程分支的列表。选择与您正在处理的分支对应的那个,并执行以下操作:

git diff HEAD^..origin/master

这应该显示您的HEAD父级之间的更改(假设您的删除是最后一次提交,必要时进行修改)和上游分支的当前状态。

答案 2 :(得分:0)

从上次知道的好拉力中创建另一个分支。然后从你的朋友那里拉一个新的分支。然后,您将能够调用新分支的日志,然后知道如何将两个分支合并为一个然后您可以推送给他。

我们的正常开发设置是拥有一个GIT存储库,每个人都可以从中重新定位。我建议使用rebasing而不是从中央存储库中提取。这是因为如果您从存储库中提取然后重新绑定到同一个存储库,那么您发送到存储库的提交将与您当前的分支冲突。我们通常发现,如果你必须使用pull或push来代替使用补丁,那就更容易了。

例如..永远不要从您提取的存储库中进行重新绑定。