如果你需要放弃所有本地更改,而使用远程分支中的副本重置/覆盖所有内容,那么你需要遵循这篇指南的内容。
重要提示:如果你进行任何本地更改,它们将会丢失。不论是否使用 --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 上的这个问题编写。