我能够“git添加”我的文件,然后“git commit”。那进展顺利。当我尝试推送到远程时,我得到了Git暗示的错误,首先“git pull”,然后再试一次。所以我做了一个“git pull”。但是我最终得到了一堆CONFLICT,但只是在一些DLL文件上。我想这是因为我们应该将它们添加到我们还没有做过的.gitignore中。Git与程序集DLL文件冲突
我该如何解决这个问题?
我能够“git添加”我的文件,然后“git commit”。那进展顺利。当我尝试推送到远程时,我得到了Git暗示的错误,首先“git pull”,然后再试一次。所以我做了一个“git pull”。但是我最终得到了一堆CONFLICT,但只是在一些DLL文件上。我想这是因为我们应该将它们添加到我们还没有做过的.gitignore中。Git与程序集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
git的结帐撤消此接受这样的情况下,--ours或--theirs选项。所以,如果你有一个合并冲突,你知道你只是想从你合并分支中的文件,你可以这样做:
$ git的结帐--theirs - 路径/到/冲突-file.txt的
使用该版本的文件。同样,如果你知道你想要你的版本(没有被合并在一个),你可以使用
$ git的结帐--ours - 路径/到/冲突-file.txt的
更多的答案here
在git中合并二进制文件不会成功。如果DLL是从项目代码中生成的:
1 - 二进制文件不应该是你保存在git上的一部分....但是,如果你觉得它有用,请确保正在为每一个新的修订,以便DLL与修订的源文件匹配(但这是另一个话题)。
2 - 您应该从合并结果的源代码生成DLL(已经解决源文件的所有冲突),然后全部提交。