首先,将所有 origin/<branch>参考更新为最新:
git fetch --all
备份当前分支(例如 master):
git branch backup-master
跳转到最新提交 origin/master并签出这些文件:
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
此后,所有旧的提交都将保留在 new-branch-to-save-current-commits.
未提交的更改
未提交的更改,即使暂存(使用 git add),也会丢失。确保 stash或承诺您需要的任何事情。例如,运行以下命令:
git stash
稍后(在 之后 git reset),重新应用这些未提交的更改:
git stash pop
这可能会产生合并冲突。
