2011-04-20 10:34:06 +0000 2011-04-20 10:34:06 +0000
235
235

如何将 "主控 "重置为 "原点/主控"?

能否用更简单的方法进行以下操作?

git checkout origin/master
git branch -D master
git branch master
git checkout master

答案 (4)

343
343
343
2011-04-20 11:22:10 +0000

正如KindDragon答案中提到的,可以直接在master处重新创建origin/master,方法是:

git checkout -B master origin/master

git checkout man page中提到:

-B 如果给定了 <new_branch>,如果不存在,则创建git checkout其他,则重置。这是

$ git branch -f <branch> [<start point>]
$ git checkout <branch>

的事务性等价物*** * *

自Git 2. 23+(2019年8月),由于git switch太混乱,新的(仍在实验中)命令是--create**:

git switch -C master origin/master

即:

-C <new-branch>
--force-create <new-branch>

<new-branch>类似,只是如果<start-point>已经存在,就会重置为&007。
这是个方便的快捷方式,用于:

$ git branch -f <new-branch>
$ git switch <new-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

,第二步是可选的。

102
102
102
2014-08-24 19:30:10 +0000

Git支持此命令:

git checkout -B master origin/master

origin/master 检查出master分支,然后在那里重置&007分支。

30
30
30
2013-01-23 20:48:07 +0000

我认为即使是VonC的答案也比这个选项复杂:

git update-ref refs/heads/master origin/master
git reset --hard master
``` &001 

git会自动记录 ref 的每个值(通过 reflog)。所以在你运行这个命令后,`master@{1}`就会引用master的前一个值。

VonC的答案是正确的,但是它把master的旧值签出到文件系统中,浪费了时间。
22
22
22
2014-06-25 15:47:13 +0000

如果你已经在master上,你可以做以下操作:

git reset --hard origin/master

这将把本地的master分支指向远程的origin/master,并丢弃工作目录中的任何修改。