2017-05-26 158 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(已經解決源文件的所有衝突),然後全部提交。