如何重置本地Git分支并拉取远程同分支的新变更?
解决本地分支重置并拉取远程最新变更的方案
别慌,这种多人协作时的代码同步场景太常见了,给你两种靠谱的处理方式,按需选择就行:
方案一:直接放弃本地所有未提交变更(确认不需要保留时用)
如果已经和朋友确认本地的修改完全没用了,直接一步到位:
- 先确保你在目标分支上(比如分支名叫
feature-fix),不在的话切换过去:git checkout feature-fix - 把本地分支强制重置到远程分支的最新状态:
git reset --hard origin/feature-fix划重点:
--hard参数会彻底清除本地所有未提交的修改,包括你编辑的那个文件的变更,一定要确认这些内容不需要保留再执行! - 保险起见,再拉取一次远程最新内容(其实重置后已经同步了,这步可选):
git pull origin feature-fix
方案二:先暂存本地修改(怕误删时用)
如果不确定以后会不会用到本地的修改,先把它们暂存起来:
- 暂存所有未提交的变更:
git stash
这时候你的工作区会回到干净的状态,本地修改被临时存在了Git的 stash 栈里 - 拉取远程分支的最新内容:
git pull origin feature-fix - 之后如果发现不需要暂存的内容了,就删掉 stash 记录:
git stash drop
要是后悔了,想恢复本地修改,就用git stash pop把暂存的内容恢复回来
额外提醒
如果你的本地已经提交了一些commit,但这些commit也不需要保留,同样可以用git reset --hard origin/你的分支名,它会把本地的commit也回退到远程分支的最新状态,彻底对齐远程代码。
内容的提问来源于stack exchange,提问作者Joe




