HOWTO · Git
在 Git 中覆蓋本地更改
本文討論了在 Git 中使用 git pull 命令覆蓋本地更改的不同方法。
本文將討論如何使用 Git 中的 git pull 命令覆蓋本地更改。
使用 git pull 命令覆蓋 Git 中的本地更改
git pull 命令從遠端獲取檔案並將其合併到本地倉庫。我們首先需要了解 git pull 命令是如何覆蓋檔案的。
git pull 命令是兩個命令的組合:
git fetch命令git merge origin/Branch命令
當我們執行 git pull 命令時,Git 會從你克隆的倉庫 origin 中獲取更改,並將它們與本地倉庫中的當前分支合併。
只有當你沒有未提交的更改時,Git 才會成功執行 git pull 命令。如果你的索引有一些未提交的更改,你可能會遇到錯誤。
使用 Git 刪除未提交的本地更改
如果你不需要索引中未提交的更改,請在下面的上下文中使用 git reset 命令。
git fetch
git reset --hard HEAD
git merge origin/$CURRENT_BRANCH
git reset --hard HEAD 將丟棄未提交的更改以允許 git merge 命令執行。
對於那些不想指定要從中獲取的分支的人,Git 有一個快捷方式,使用命令列中的 @{u} 引數。
git fetch
git reset --hard HEAD
git merge '@{u}'
使用 Git 保留未提交的本地更改
對於那些不想擺脫未提交更改的人,你可以提交或儲存它們。隱藏你的提交會使它們遠離你的索引,你可以稍後恢復它們。
更改仍在 Git 上,但不可見。在從倉庫中提取之前執行 git stash 命令。
你可以使用 git stash pop 命令恢復隱藏的更改。請注意,git stash pop 命令將應用你的更改,從你的列表中刪除儲存。
git fetch
git stash
git merge '@{u}'
git stash pop
如果上述方法不起作用,我們總是有 git pull --force 命令。
你需要使用此命令指定源分支和接收分支。它與 git fetch --force 非常相似。