git常見衝突及解決辦法

2022-07-18 18:12:08 字數 950 閱讀 9691

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...