在使用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....