git沒有衝突 但是提示有 git 解決衝突

2021-10-19 15:51:30 字數 2178 閱讀 1522

在使用git pull**時,經常會碰到有衝突的情況,提示如下資訊:

error: your local changes to 'c/environ.c' would be overwritten by merge. aborting.

please, commit your changes or stash them before you can merge.

複製**

這個意思是說更新下來的內容和本地修改的內容有衝突,先提交你的改變或者先將本地修改暫時儲存起來。

處理的方式非常簡單,主要是使用git stash命令進行處理,分成以下幾個步驟進行處理。

1、先將本地修改儲存起來

$ git stash

複製**

這樣本地的所有修改就都被暫時儲存起來 。用git stash list可以看到儲存的資訊:

其中stash@就是剛才儲存的標記。

2、pull內容

暫存了本地修改之後,就可以pull了。

$ git pull

複製**

3、還原暫存的內容

$ git stash pop stash@

複製**

也可以簡寫為:

$ git stash pop

複製**

系統可能有以下兩種提示,具體提示如下類似的資訊:

a) git 自動合併**成功

複製**b) git 自動合併**失敗, 需要人工合併**

複製**

意思就是系統自動合併修改的內容,但是其中有衝突,需要解決其中的衝突。

針對以上兩種情況的解決方案:

4-a、更新**成功

對於 a) 情況, ** 已經由github 自動合併 所以我們本地**與 遠端倉庫**已保持一致, 可以選擇提交** 或者 繼續開發。

4-b、解決檔案中衝突的的部分

對於 b) 情況, 我們就必須得解決衝突**並提交了,開啟衝突的檔案,會看到類似如下的內容:

其中updated upstream 和*****之間的內容就是pull下來的內容,====和stashed changes之間的內容就是本地修改的內容。碰到這種情況,git也不知道哪行內容是需要的,所以要自行確定需要的內容。

執行git status會顯示這些檔案沒有合併(unmerged),這些有衝突的檔案裡面會新增像下面的衝突識別符號:

<<<<<<< head:file.txt

hello world

goodbye

>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

複製**

你所需要的做是就是編輯解決衝突,(接著把衝突識別符號刪掉),再執行下面的命令:

$ git add file.txt

$ git commit –m 『commit info』

複製**

ps: -m 後面的字串就是提交的注釋, 使用 add 是將 修改內容 暫存到本地倉庫, 原理圖如下:

note:現在很痛苦,等過陣子回頭看看,會發現其實那都不算事。

git沒有衝突 但是提示有 git 衝突解決

情景,aa a.txt中的,bb 1 git status 修改本地的aa a.txt中的,bb 3 在伺服器也修改了aa a.txt,bb 2 提交本地的 到遠端倉庫 在伺服器執行git pull 此時,發生 衝突 1 如果希望儲存本地改動並拉下最新伺服器 手動merge 1 要保留伺服器上的修改...

git 找到衝突 git 衝突解決

用git pull來更新 的時候,遇到了下面的問題 出現這個問題的原因是其他人修改了 php並提交到版本庫中去了,而你本地也修改了 php,這時候你進行git pull操作就好出現衝突了,解決方法,在上面的提示中也說的很明確了。1 保留本地的修改 的改法 1 直接commit本地的修改 也一般不用這...

git 衝突 內容衝突

假設乙個專案兩個人在開發 user1建立b.php aaaaaa並進行了以下操作 git add b.php git commit m add b.php git push origin user2 建立b.php iiii並執行了 git add b.php git commit m fix b....