在 Git 中覆蓋本地更改

John Wachira 2023年1月30日 2022年4月22日
  1. 使用 git pull 命令覆蓋 Git 中的本地更改
  2. 使用 Git 刪除未提交的本地更改
  3. 使用 Git 保留未提交的本地更改
在 Git 中覆蓋本地更改

本文將討論如何使用 Git 中的 git pull 命令覆蓋本地更改。

使用 git pull 命令覆蓋 Git 中的本地更改

git pull 命令從遠端獲取檔案並將其合併到本地倉庫。我們首先需要了解 git pull 命令是如何覆蓋檔案的。

git pull 命令是兩個命令的組合:

  1. git fetch 命令
  2. 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 非常相似。

Author: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

相關文章 - Git Pull