如果你需要放弃所有本地更改,而使用远程分支中的副本重置/覆盖所有内容,那么你需要遵循这篇指南的内容。

重要提示:如果你进行任何本地更改,它们将会丢失。不论是否使用 --hard 选项,所有尚未推送的本地提交都将丢失。

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

覆盖本地文件的方法

输入以下命令来覆盖本地文件:

git fetch --all
git reset --hard <remote>/<branch_name>

例如:

git fetch --all
git reset --hard origin/master

如何运行

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

然后 git reset 将 master 分支重置为你刚获取的分支。--hard 选项更改工作树中的所有文件,以匹配 origin/master 中的文件。

其他信息

值得注意的是,可以在重置前从 master 或你要处理的任何分支创建分支,来维护当前的本地提交:

例如:

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

然后,所有旧提交将保存在新分支中,以保存当前提交。但是,未提交的更改(即使已被暂存)将丢失。确保隐藏并提交你需要的任何东西。

附:

这篇文章基于 Stack Overflow 上的这个问题编写

原文:How to Overwrite Local Files with Git Pull