2017-05-26 164 views
0

我能够“git添加”我的文件,然后“git commit”。那进展顺利。当我尝试推送到远程时,我得到了Git暗示的错误,首先“git pull”,然后再试一次。所以我做了一个“git pull”。但是我最终得到了一堆CONFLICT,但只是在一些DLL文件上。我想这是因为我们应该将它们添加到我们还没有做过的.gitignore中。Git与程序集DLL文件冲突

我该如何解决这个问题?

回答

0

为了解决你得到了合并冲突,你在本地的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 
0

git的结帐撤消此接受这样的情况下,--ours或--theirs选项。所以,如果你有一个合并冲突,你知道你只是想从你合并分支中的文件,你可以这样做:

$ git的结帐--theirs - 路径/到/冲突-file.txt的

使用该版本的文件。同样,如果你知道你想要你的版本(没有被合并在一个),你可以使用

$ git的结帐--ours - 路径/到/冲突-file.txt的

更多的答案here

0

在git中合并二进制文件不会成功。如果DLL是从项目代码中生成的:

1 - 二进制文件不应该是你保存在git上的一部分....但是,如果你觉得它有用,请确保正在为每一个新的修订,以便DLL与修订的源文件匹配(但这是另一个话题)。

2 - 您应该从合并结果的源代码生成DLL(已经解决源文件的所有冲突),然后全部提交。