Git与汇编DLL文件冲突

时间:2017-05-26 18:56:46

标签: git

我能够" git add"我的文件然后" git commit"。那很顺利。当我试图推到遥控器时,我得到了错误,Git暗示第一个" git pull"然后再试一次。所以我做了一个" git pull"。但我最终获得了一堆CONFLICT,但仅限于一些DLL文件。我想这是因为我们应该将它们添加到我们尚未做的.gitignore中。

如何修复此次推送?

3 个答案:

答案 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接受--ours或--theirs选项。因此,如果您有合并冲突,并且您知道您只想要合并的分支中的文件,则可以执行以下操作:

$ 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,这是合并的结果(已经解决了源文件上的所有冲突),然后全部提交。