Answers:
正如KindDragon的答案所提到的,您可以使用以下命令master
直接重新创建origin/master
:
git checkout -B master origin/master
该git checkout
手册页 提到:
如果-B
给定,<new_branch>
则创建它(如果不存在);否则,将其重置。这是交易的等价物
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
最初建议:
就像是:
$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
步骤2是可选的。
Git支持以下命令:
git checkout -B master origin/master
检出origin/master
分支,然后master
在此处重置分支。
git fetch origin master
先确保origin/master
已更新吗?
git fetch
首先使用所有解决方案
我认为与该选项相比,VonC的答案也很复杂:
git update-ref refs/heads/master origin/master
git reset --hard master
git自动记录引用的每个值(通过引用日志)。因此,在您运行该命令之后,然后master@{1}
引用master的先前值。
VonC的答案是正确的,但是浪费了将master的旧值检出到文件系统中的时间。
如果您关心存储库中的孤立对象,则可以运行 git gc
Already on 'master'
如果您已经在使用master
,则可以执行以下操作:
git reset --hard origin/master
它将本地master
分支指向远程,origin/master
并丢弃工作目录中的任何修改。
git checkout -B master origin/master
吗?