如何强制“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)