我是git的新手,想知道如何进行合并,在本地仓库中,我删除了主分支上的几个文件,但这些文件存在于远程主分支中。
执行git-merge后,它会显示已发生的冲突。
使用git gui显示本地文件被删除,而远程分支文件有内容。
如何阻止这些文件发生冲突? 有没有一种使用git gui的简单方法?
非常感谢
答案 0 :(得分:150)
您应该根据需要解决冲突。如果该文件确实应该被删除,并且您将该更改发布到原始文件,请将其删除:
git rm path/to/file
如果文件实际上应该被跟踪,请添加它(工作树中的版本将是来自原点的版本):
git add path/to/file
完成其中任何一项以解决冲突后,提交合并。
答案 1 :(得分:25)
作为已接受答案的补充提示,在“我们删除”中,如果您希望查看对已删除文件所做的更改,以便您可以应用这些您可以使用其他地方的更改:
git diff ...origin/master -- path/to/file
如果它是“被他们删除”的情况,并且您希望看到更改以便将其应用到其他地方,则可以使用:
git diff origin/master... -- path/to/file
答案 2 :(得分:9)
在Git GUI中,选择冲突的文件,然后右键单击显示冲突文本的主文本区域。
在出现的上下文菜单中,您可以选择使用“远程”或使用“本地”。因此,如果远程删除文件,您可以选择“远程”以在本地传播删除,反之亦然。
花了我一个月才弄明白......如果Git GUI实际上有文档......那就太好了。
答案 3 :(得分:0)
在EGit中我也发现了问题。我的解决方案是:
答案 4 :(得分:0)
评价最高的答案集中在解决冲突的方法上。
在此之前,您可能想知道远程控制器在本地删除的文件中进行了哪些更改。
为此,您可以通过以下方式查看更改:
MyAppState
来自https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--1--base
将工作树与“基本”版本进行比较。索引仅包含未合并条目的这些阶段,即解决冲突时。
答案 5 :(得分:0)
如this useful answer to a related question中所述,您可以使用git mergetool
来启动一个对话框,从中可以选择是要获取文件的修改版还是删除版。