2009-09-30 85 views
5

我删除了我的工作目录中的文件。然后我做一个'混帐'。 我团队中的另一个人修改相同的文件并将'git push'添加到HEAD。如何在git rebase中的“合并冲突”期间看到更改

所以,当我做一个“git的重订”,我得到一个合并冲突像“冲突的git(删除)”

我的问题是我怎么能找到什么样的变化做了另外一个人的球队取得到我删除的文件?

谢谢。

回答

7

当存在合并过程中或变基冲突,不同版本的文件都可以从:

  • 各个分支:

    $ 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”。

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

+0

谢谢。 是否有一个允许我在跟踪分支的HEAD中获取整个文件的提交?我正在考虑做'git show:2:path/to/file> myFile',但这可能会改变格式或换行符。有没有更好的办法? – n179911 2009-09-30 16:42:37

+0

我想可以使用低级别的''git cat-file -p:2:path/to/file> myFile'“。 – 2009-09-30 20:14:10

4

Git将存储库中上游分支状态的副本保留为“远程跟踪”分支。如果您执行git branch -r,您将看到所有远程分支的列表。选择符合你的工作分支中的一个,而这样做:

git diff HEAD^..origin/master 

这将显示你的头父母之间的变化(假设你删除了最后一次提交,根据需要修改)和上游分支的当前状态。

0

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

我们正常的开发设置是有一个GIT存储库,每个人都可以从中重新启动。我建议重新装订,而不是从中央存储库中提取。这是因为如果您从存储库中取出然后重新绑定到同一个存储库,那么您发送到存储库的提交将与您当前的分支发生冲突。如果你不得不使用拉或推,我们通常会发现它更容易,而不是使用补丁。例如:

例如:永远不要从您从中拉出的存储库重新绑定。