1.內容衝突
產生衝突的原因:兩個使用者修改了同乙個檔案的同一塊區域,git會報告內容衝突。我們常見的都是這種。
解決衝突的辦法:編輯衝突檔案,修改衝突。
例如:衝突檔案test.c
test.c發生衝突後的內容如下:
#include #include ++<<<<<<< head其中:《與*****==之間的內容是我修改的,*****==與》之間的內容是別人的修改。+/* wide character strlen fucntion */
+size_t my_wc_strlen(const wchar_t *s)
++= = = = = = =
+ wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc)
++ return null;+}+
+ size_t my_wstrlen(const wchar_t *s)
++>>>>>>>9d201a9c61bc4713f4095175f8954b642dae8f86
解決辦法:刪除衝突標記,解決衝突。
2.樹衝突
產生衝突的原因:檔名修改造成的衝突,稱為樹衝突。
比如,a使用者把檔案改名為a.c,b使用者把同乙個檔案改名為b.c,那麼b將這兩個commit合併時,會產生衝突。
$git status
added by us:b.c
both deleted:origin-name.c
added by them:a.c
如果最終確定用b.c
解決衝突的辦法:
git rm a.c
git rm origin-name.c
git add b.c
git commit
執行前面兩個git rm時,會警告「file-name:needs merge」,可以不必理會。
git衝突產生及解決辦法
git會對每個檔案逐行進行比較,如果在合併的時候,如果同一行有兩個人同時修改過,那麼就不知道使用哪部分的 這是造成衝突的原因。一般情況下,線上或是線下都會有use ours user thers user both三個選項,分別是只使用自己修改的 只使用合併進來的別人的修改 或者兩個都保留。在衝突 ...
git rebase 的常見衝突及解決辦法
1.git cherry pick與git rebase 進行兩個獨立分支的 合併時有兩個比較常用的命令,分別是git cherry pick和git rebase。cherry pick主要可以用於拷貝某個單獨的patch,它的靈活性更大,而rebase主要用於整個分支的一次性合併。git reb...
Ruby常見錯誤及解決辦法
ruby常見錯誤及解決辦法 更新中.module test def add up x,y return x y endendputs add up 100,89 如上 執行出現以下兩個錯誤。錯誤1 class module name must be constant 解決方法 module名字tes...