Git更新本地倉庫及衝突"Commit your changes or stash them before you can merge"解決

MUYang99發表於2022-03-12

Git中從遠端的分支獲取最新的版本到本地有這樣2個命令:

1. git fetch:相當於是從遠端獲取最新版本到本地,不會自動merge

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含義:

   首先從遠端的origin的master主分支下載最新的版本到origin/master分支上
   然後比較本地的master分支和origin/master分支的差別
   最後進行合併

2. git pull:相當於是從遠端獲取最新版本並merge到本地

git pull origin master

上述命令其實相當於git fetch 和 git merge
在實際使用中,git fetch更安全一些
因為在merge前,我們可以檢視更新情況,然後再決定是否合併

 

當遇到"Commit your changes or stash them before you can merge"衝突時,這表明GIt保護您本地的程式碼修改,避免重要的修改丟失。有三種方法解決:

1. 提交程式碼修改:

git commit -m "My message"

2. Stash it:

Stash儲存充當堆疊,您可以在其中推送更改,並以相反的順序彈出它們

儲存:

git stash

進行合併,然後拉出儲存的修改:

git stash pop

3. 丟棄本地的修改:

git reset --hard

或者

git checkout -t -f remote/branch

或者為特定檔案丟棄本地修改:

git checkout filename

相關文章