在 Git 中覆盖本地更改
本文将讨论如何使用 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
非常相似。
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