git在切代碼分支時經常碰到這樣的問題:error: Your local changes to the following files would be overwritten by merge
有時本地並沒有需要保存的修改,所以可以通過以下方式把本地文件強制覆蓋掉。
> git fetch --all > git reset --hard origin/master > git pull
1、git fetch 相當於是從遠程獲取最新到本地,不會自動merge,如下指令:
git fetch orgin master //將遠程倉庫的master分支下載到本地當前branch中 git log -p master ..origin/master //比較本地的master分支和origin/master分支的差別 git merge origin/master //進行合並
也可以用以下指令:
git fetch origin master:tmp //從遠程倉庫master分支獲取最新,在本地建立tmp分支 git diff tmp //將當前分支和tmp進行對比 git merge tmp //合並tmp分支到當前分支
2. git pull:相當於是從遠程獲取最新版本並merge到本地
git pull origin master
git pull 相當於從遠程獲取最新版本並merge到本地
在實際使用中,git fetch更安全一些
git reset--hard origin/master
git reset (–mixed) HEAD~1
回退一個版本,且會將暫存區的內容和本地已提交的內容全部恢復到未暫存的狀態,不影響原來本地文件(未提交的也
不受影響)
git reset –soft HEAD~1
回退一個版本,不清空暫存區,將已提交的內容恢復到暫存區,不影響原來本地的文件(未提交的也不受影響)
git reset –hard HEAD~1
回退一個版本,清空暫存區,將已提交的內容的版本恢復到本地,本地的文件也將被恢復的版本替換