[Git] 強制從遠端的 Git server 下載最新的資料

[Git] 強制從遠端的 Git server 下載最新的資料

今天在本機上改了一些檔案,因此導致 git pull 失敗:

testuser@localhost ~ $ git pull
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 10 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (10/10), done.
From gitlab.test.com:machine-learning/machine-learning
bcb85b0..a0ba2af  master     -> origin/master
Updating bcb85b0..a0ba2af
error: Your local changes to the following files would be overwritten by merge:
Users/testuser/round1.py
Please, commit your changes or stash them before you can merge.
Aborting

 

後來想放棄這些修改,直接拿 Git server 上的來覆寫,

查了一下,Git 是有方法可以這麼做的~

 

先執行 git fetch 將遠端 (origin) 的 master branch 的資料下載下來,

再用 git reset –hard origin/master,

就可以讓目前的 branch 直接使用剛抓下來的 origin/master branch:

git fetch
git reset --hard origin/master

 

之後再執行 git pull,就可以發現目前已經沒有資料要更新了:

testuser@localhost ~ $ git pull
Already up-to-date.

 

要注意這個方法會讓本地端所有的修改都消失不見喔~請小心使用~

 

參考資料:stackoverflow: Force Git to overwrite local files on pull

 

(本頁面已被瀏覽過 680 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料