我向分支master
推送了约200次提交。
在另一台服务器上,分支A
已签出,但我需要在此处签出master
。
我可以先执行git checkout master
,然后立即执行git pull
。
但是,直到执行git pull
来更新分支之前,旧状态才开始生效。
我可以先更新一个分支然后将其签出吗?
答案 0 :(得分:3)
运行git fetch
后,您可以强制master
更改为origin/master
所在的位置:
git branch -f master origin/master
然后您可以签出:
git checkout master
这将处于origin/master
的状态,并且您不会绕过它以前的中间状态。
这是一个简短的示例(我在test
上签出,并将master
更改为与test
相同的位置):
> git log --graph --oneline
* d97b1f8 (HEAD -> test) - tata (1 second ago)
* e680fb5 - toto (9 seconds ago)
* 4515586 (master) - bar (24 seconds ago)
* e241705 - foo (28 seconds ago)
> git branch -f master test
> git log --graph --oneline
* d97b1f8 (HEAD -> test, master) - tata (9 seconds ago)
* e680fb5 - toto (17 seconds ago)
* 4515586 - bar (32 seconds ago)
* e241705 - foo (36 seconds ago)