在 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