我是git的新手,我想知道应该如何进行合并,在本地仓库中,我已经删除了master分支上的几个文件,但是这些文件存在于远程master分支中。
执行git-merge之后,它显示已发生的冲突。
使用git gui可以显示本地文件已删除,而远程分支文件中有内容。
如何防止这些文件冲突?有使用git gui的简单方法吗?
非常感谢
我是git的新手,我想知道应该如何进行合并,在本地仓库中,我已经删除了master分支上的几个文件,但是这些文件存在于远程master分支中。
执行git-merge之后,它显示已发生的冲突。
使用git gui可以显示本地文件已删除,而远程分支文件中有内容。
如何防止这些文件冲突?有使用git gui的简单方法吗?
非常感谢
Answers:
您应该按照自己的意愿解决冲突。如果确实应该删除该文件,并且您将要发布的更改发布到原始位置,请再次删除它:
git rm path/to/file
如果实际上应该仍然跟踪该文件,则添加它(工作树中的版本将是原始版本):
git add path/to/file
完成上述任一操作以解决冲突后,请提交合并。
cd
到目录,然后git rm *.ext
。您的外壳程序(不是Git)将扩展*.ext
为所有匹配的文件名。
git rm
没有-i
标志。
git rm *-suffix.ext
?一样的区别。如果您在确定如何使用Shell通配符时遇到问题,请在unix.stackexchange.com上询问。如果您知道无法通过遍历来完成所需的操作,请使用rm -i
并遵循git add -u
以选择删除的内容。
-s recursive -X ours
,为什么还需要git rm
和git add
?
作为已接受答案的补充提示,在“我们删除”中,如果您希望查看对已删除文件所做的更改,以便可以将这些更改应用于其他地方,则可以使用:
git diff ...origin/master -- path/to/file
如果是“被他们删除”的情况,并且您想查看更改以便可以将其应用到其他地方,则可以使用:
git diff origin/master... -- path/to/file
git diff mybranch@{1}...origin/master -- path/to/file
git diff --base
(请参阅我的其他答案)。
评分最高的答案集中在解决冲突的方法上。
在此之前,您可能想知道远程控制器在本地删除的文件中进行了哪些更改。
为此,您可以通过以下方式查看更改:
git diff --base
来自https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--1-base
将工作树与“基本”版本进行比较。索引仅包含未合并条目的这些阶段,即解决冲突时。
git diff --base
stackoverflow.com/a/60484874/470749的
如对相关问题的此有用答案所述,您可以git mergetool
用来启动一个对话框,在其中可以选择是否要获取文件的修改或删除版本。