1. 程式人生 > >git衝突之git pull時,同一個檔案,遠端倉庫裡已經修改了,不幸的是你在本地倉庫也修改了

git衝突之git pull時,同一個檔案,遠端倉庫裡已經修改了,不幸的是你在本地倉庫也修改了

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 #拉遠端分支程式碼