在 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 非常相似。