首先,将所有 origin/<branch>
参考更新为最新:
shellgit fetch --all
备份当前分支(例如 master
):
shellgit branch backup-master
跳转到最新提交 origin/master
并签出这些文件:
shellgit reset --hard origin/master
解释:
git fetch
从远程下载最新版本,而无需尝试合并或重新设置任何内容。
git reset
将 master 分支重置为您刚刚获取的内容。该 --hard
选项会更改工作树中的所有文件以匹配 origin/master
.
维护当前的本地提交
[*]:值得注意的是,可以通过在 master
重置之前创建分支来维护当前的本地提交:
shellgit 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
或承诺您需要的任何事情。例如,运行以下命令:
shellgit stash
稍后(在 之后 git reset
),重新应用这些未提交的更改:
shellgit stash pop
这可能会产生合并冲突。