git衝突之git pull時,同一個檔案,遠端倉庫裡已經修改了,不幸的是你在本地倉庫也修改了
阿新 • • 發佈:2018-12-27
0、git pull,爆出一個錯誤,pull failed
Your local changes would be overwritten by merge. Commit, stash or revert them to proceed.
你本地修改的將會被合併覆蓋。要麼提交、要麼儲存起來或者回退掉修改的內容,才能繼續進行
1、分支肯定是同一個分支撒,即本地分支與遠端分支,目前是同一個
2、解決方案,按照提示來說,就是三種辦法
a、你先提交自己對檔案的修改,再去拉程式碼
git add . #修改放到暫存區 git commit -m '哥不服' #提交到本地倉庫 git push #假設就一個遠端分支,該省略的全省了
b、你先把自己修改的內容藏起來
git stash #先把自己的修改都儲存起來
git pull #拉新程式碼
git stash pop #再把儲存的程式碼拿出來,在本地倉庫自動合併
git stash list 可以看到使用git stash儲存的資訊
git stash clear 清空stash棧
git diff -w +檔名 來確認程式碼自動合併的情況
自動合併時,如果git拿捏不定,還是告訴你,由你來決定怎麼合併(會提示這個
Auto-merging c/environ.c CONFLICT (content): Merge conflict in c/environ.c
)
轉載一個老大的
其中Updated upstream 和=====之間的內容就是pull下來的內容,====和stashed changes之間的內容就是本地修改的內容。碰到這種情況,git也不知道哪行內容是需要的,所以要自行確定需要的內容
3、遠端分支為準,自己在本地的修改不要了
git reset --hard #放棄本地修改
git pull #拉遠端分支程式碼