返回博客

Git 强制拉取更新的三种方法

本文介绍了三种 git 强制拉取更新的方法:使用 git restore 重置、使用 git reset 强制拉取更新以及推荐方法使用 git stash 暂存代码再同步。详细解释了每个命令的用法和注意事项,包括 reset 的--hard、--soft、--mixed 参数。解决 git pull 失败的问题。

Mt.r
|

博客自动化部署失败了,上线查了一下原因,发现是 git pull 失败了。因为有新的文件更新。

就查了一下 git 强制拉取更新的命令

restore 重置

git restore .
git reset .
git pull

reset 强制拉取更新

reset 比较暴力,相当于 可适用于 代码在工作区、暂存区、仓库区等任何场景,重置后不可恢复 🙅‍♂️,对于新手有一定的安全隐患。

git fetch --all
git reset --hard origin/master
git pull   // 这一步为了同步远程代码,不需要的话可不执行
  • git fetch 指令是下载远程仓库最新内容,不做合并。
  • git reset 指令把 HEAD 指向 master 最新版本。
    • reset —hard:重置后不保留暂存区和工作区
    • reset —soft:保留工作区,并把重置 HEAD 所带来的新的差异放进暂存区(此时代码的变更状态相当于执行完 git add 命令)
    • reset —mixed:reset 的默认参数,保留工作目录,并重置暂存区(此时代码的变更状态相当于执行 git add 命令之前)

stash 暂存(推荐)

我比较喜欢的方法,是用 stash,暂存代码再同步。

首先,将所有代码添加至暂存区:

git add .

然后,将代码临时保存:

git stash

此时代码会重置到修改前的状态,可以同步远程仓库区,完事儿。

git pull

同步后,如果还想继续修改原来的代码,可将临时代码恢复至工作区:

git stash pop

转载来源

原文链接:https://blog.csdn.net/haoaiqian/article/details/78284337