如何强制“git pull”覆盖本地文件

重要提示:如果有任何本地更改,它们将丢失。带或不带–hard选项,则任何尚未推送的本地提交都将丢失。[*]

如果你有任何文件由Git跟踪(例如上传的用户内容),这些文件不会受到影响。


首先,运行fetch来更新所有origin/<branch>参考最新版本:

git fetch --all

备份当前分支:

git checkout -b backup-master

然后,您有两个选择:

git reset --hard origin/master

或者如果你在其他分支机构:

git reset --hard origin/

说明:

git fetch从远程下载最新版本,无需尝试合并或重新设置任何内容。

然后git reset将主分支重置为刚才获取的内容。这个–hard选项将更改工作树中的所有文件以匹配中的文件origin/master


维护当前本地提交

[*]:值得注意的是,可以通过从创建分支来维护当前的本地提交master复位前:

git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master

在这之后,所有旧的承诺都将被保留new-branch-to-save-current-commits.

未提交的更改

但是,未提交的更改(即使是阶段性更改)将丢失。一定要把你需要的东西藏起来。为此,您可以运行以下命令:

git stash

然后重新应用这些未提交的更改:

git stash pop
(0)

相关推荐