Git Pull強制覆蓋本地文件


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
回退一個版本,清空暫存區,將已提交的內容的版本恢復到本地,本地的文件也將被恢復的版本替換


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM