我能够" git add"我的文件然后" git commit"。那很顺利。当我试图推到遥控器时,我得到了错误,Git暗示第一个" git pull"然后再试一次。所以我做了一个" git pull"。但我最终获得了一堆CONFLICT,但仅限于一些DLL文件。我想这是因为我们应该将它们添加到我们尚未做的.gitignore中。
如何修复此次推送?
答案 0 :(得分:1)
要解决您遇到的合并冲突,您必须在本地DLL文件和远程DLL文件之间进行选择:
git checkout --ours -- path/of/file.dll # This chooses the local file
git checkout --theirs -- path/of/file.dll # This chooses the remote file
然后你必须用
标记冲突解决方案git add path/of/file.dll
像往常一样完成合并(git commit
一旦完成)
如果你想忽略DLL文件(这可能是一个好主意)你必须将它们添加到.gitignore
文件,但由于它们已经被git跟踪,你必须通过
git rm --cached path/of/file.dll
答案 1 :(得分:1)
$ git checkout --theirs - path / to / conflicted-file.txt
使用该版本的文件。同样,如果您知道您想要您的版本(不是合并的版本),您可以使用
$ git checkout --ours - path / to / conflicted-file.txt
更多答案here
答案 2 :(得分:0)
在git中合并二进制文件不会有用。如果DLL是从项目代码生成的:
1 - 二进制文件不应该是你保留在git上的一部分....但是,如果你发现它很有用,请确保为每个新版本生成DLL,以便DLL与源文件匹配修订版(但这是另一个主题)。
2 - 你应该从源代码生成DLL,这是合并的结果(已经解决了源文件上的所有冲突),然后全部提交。