
git pull 出現這個錯誤頁面
百度說明
問題根源
問題原因:
問題出現的原因很好發現,因為在錯誤提示中已經說明,但是因為英文太渣,習慣性忽略。。。這真的不是一個好習慣。
以下是英語渣博主的大概翻譯:
當打開 git/MERGE_MSG 文件的時候,發現有 git/MERGE_MSG.swp 文件的存在,並且從時間上來看, MERGE_MSG 比 MERGE_MSG.swp 要更新。
造成這種情況的原因有以下兩種可能
(1)另外一個應用正在打開此文件。這種情況,要小心修改,防止出現同一個文件,兩種修改版本的出現。完了之后可以選擇退出或者更加小心的繼續 。
(2)編輯該文件的時候,該文件不正常關閉了。這種情況,如果需要,可以選擇 “:recover” or “vim -r project-path/.git/MERGE_MSG” 命令來恢復文件關閉前的修改。
上述兩種情況確認完畢后,刪除 MERGE_MSG.swp 文件,就可以避免該錯誤提示。
關於 MERGE_MSG.swp 文件的說明:
.swp 文件和 git 無關,在使用 VIM 開始編輯某文件時,都會產生該文件對應的 .swp 文件。正常的退出,VIM 會自動刪除此類型文件,非正常退出情況下, VIM 不會刪除 ,.swp 文件會作為文件編輯狀態的內容備份。
其實多次打開多次不正常關閉,會一直產生 .sw* 文件
問題解決1:
第一步:回到合並前狀態
git merge -abort // 中止合並
rm .git/.MERGE_MSG.sw* //刪除 vim 非正常關閉產生的文件
第二步:重新合並
合並提交信息頁面,使用 :wq! 或者 :q! 正常退出 VIM ,就能正常合並啦。
PS:
如果 .git/MERGE_* 文件中 只有 MERGE_MSG 文件的話,不用執行 git merge -abort ,直接刪除 .MERGE_MSG.sw* 文件就好。
git merge -abort // 會刪除 merge_* 文件
rm .git/.MERGE_MSG.sw* // 會刪除 .MERGE_MSG.sw* 文件
問題解決2:
直接不處理
:q
