diff --git a/public/bootstrap/img/glyphicons-halflings-white.png b/public/bootstrap/img/glyphicons-halflings-white.png
index 3bf6484..c016d6b 100644
Binary files a/public/bootstrap/img/glyphicons-halflings-white.png and b/public/bootstrap/img/glyphicons-halflings-white.png differ
這只是意味着glyphicons-halflings-white.png
在該提交改變,但內容二進制和不適合用於在終端中顯示。因此,它會忽略任何實際差異,以避免破壞您的終端(終端解釋某些代碼,因此您不想將原始數據傳輸到該終端)。
下一位是更有趣:
error: 'commit' is not possible because you have unmerged files.
hint: Fix them up in the work tree,
hint: and then use 'git add/rm <file>' as
hint: appropriate to mark resolution and make a commit,
hint: or use 'git commit -a'.
fatal: Exiting because of an unresolved conflict.
這意味着你試圖合併和文件有衝突。發生這種情況是因爲更改所基於的版本與您合併到的分支的版本不同。從圖形上看,它看起來像這樣
C
.-------------*------------.
/ \
*------*---------------*--------------+
A B D E
所以,讓我們說,你有這樣的更新,這些圖標(提交C)這是基於凱明B.那麼別人落在主的變化是改變了同一個特性分支文件,說提交D.現在當你嘗試合併時,提交C和D是衝突的,因爲他們觸及相同的二進制文件。 Git不理解二進制格式,所以不知道如何將它們合併在一起。您作爲用戶需要解決衝突,然後添加並提交結果。這意味着您需要檢查所有三個版本:基於提交B(合併基礎),基於提交C(MERGE_HEAD /您的版本)和基於提交D(主/版本)的基礎。你可以這樣做,看到所有的這些版本:
git show :1:path/to/file.ext > file.merge-base.ext # The merge base (commit B)
git show :2:path/to/file.ext > file.HEAD.ext # The version on the branch you're merging into (commit D)
git show :3:path/to/file.ext > file.MERGE_HEAD.ext # The version on your branch (commit C)
的命令在這些不同的版本獲得的git merge手冊頁中記錄。有關分段語法的更多信息,您可以查看Specifying Revisions section of the gitrevisions手冊頁。
您可以嘗試在提交之前恢復原始版本。它看起來像:
git show edd703783a8802284fb975e9f354394541f1bad5~1:public/bootstrap/img/glyphicons-halflings-white.png > public/bootstrap/img/glyphicons-halflings-white.png
git commit -M "Revert the last set of changes made to icons." public/bootstrap/img/glyphicons-halflings-white.png
當從樹的頂部運行。您也可以選擇讓您的版本:
git checkout --ours # Keeps the version on master (commit D, the :2: version)
或者,
git checkout --theirs # Keeps the version from your branch (commit C, the :3: version)
然後您需要添加文件並提交解決合併。
最後,如果你還沒有這樣的線在你.gitattributes
文件,你可能要考慮:
*.png binary
這意味着處理二進制文件二進制。 Git不會嘗試合併文件內容。通常情況下,git通過在前100個字節(IIRC)中查找NUL字符來執行二進制檢測。我不記得PNG格式,但也許有可能不保證在前100個字節中有一個,所以git可能會嘗試合併文件的內容並插入衝突標記。這會以圖像程序或瀏覽器無法查看的方式破壞圖像,我懷疑這是發生在您身上的事情。你的.gitattributes
文件中的上面一行將確保git不會插入衝突標記,並且可以避免嘗試將分支之間未提交的更改合併到.png文件。
你可以將它們從存儲庫中完全刪除(如果需要,在推送之前使用'git rm')? – Leeward
您使用的是Windows嗎?也許你的crlf設置是錯誤的?看這裏的例子:http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf – filmor
@Leeward有很多文件(所有圖像),所以如果我可以避免刪除它們:/ –