【发布时间】:2021-09-23 19:30:50
【问题描述】:
我在本地 master 中有一些旧的本地提交,所以 git status 表明我比 origin/master 领先 58 个提交。我不关心那些旧的提交,并且想将本地主机重置为与远程主机同步。这样做的首选是什么?另一个分支也是如此。
【问题讨论】:
-
@SwissCodeMen,谢谢,它回答了这个问题,修改如下 eftshift0 的回答。我应该自己找到的。
标签: git
我在本地 master 中有一些旧的本地提交,所以 git status 表明我比 origin/master 领先 58 个提交。我不关心那些旧的提交,并且想将本地主机重置为与远程主机同步。这样做的首选是什么?另一个分支也是如此。
【问题讨论】:
标签: git
如果您不关心当前分支中的任何内容,那么最简单的方法是reset --hard:
git checkout master
git reset --hard origin/master
这迫使您的本地主人在内容和历史上都像起源/主人一样。小心使用...工作树中未提交的任何内容都将按照其在 origin/master 中的方式设置。
【讨论】:
在一个命令中,从 Git 2.23 开始,使用 git switch -C:
git switch -C master origin/master
这是一个方便的快捷方式:
$ git branch -f <new-branch> $ git switch <new-branch>
正如我在“Need to reset git branch to origin version”中解释的那样,您仍然需要 git clean -f -d 以确保所有新的和未暂存的文件也被删除(它们不会被 reset/ switch -C 单独)。
请务必先发送git clean -n -d,以便预览了解将要删除的内容。
【讨论】: