我检查了mk
分支。现在我git fetch origin
来获取origin/mk
分支。这个分支是重新设置的,我没有本地更改,所以我只想将本地mk
分支指针移动到获取的远程分支,所以我执行以下操作:
$ git update-ref -m "Updating mk to remote ..." refs/heads/mk refs/remotes/origin/mk
show-ref
$ git show-ref mk
a885dad11c37e5c03cc4937766d62e181984c1aa refs/heads/mk
a885dad11c37e5c03cc4937766d62e181984c1aa refs/remotes/origin/mk
但是,提交a885dad
没有签出到工作目录。为什么?可以自动结账吗?
答案 0 :(得分:1)
注意,正如“Merge, update, and pull Git branches without using checkouts”中所提到的,简单的git fetch -u origin mk:mk
也会做同样的事情(快速合并)。
问题是:那些命令是否更新HEAD?
如果是git update-ref
,则需要单独的git update-ref -m "Updating mk to remote ..." HEAD refs/heads/mk
。
但是使用git fetch
中的-u
也应该允许更新HEAD:
-u
--update-head-ok
默认情况下
git fetch
拒绝更新与当前分支对应的头部。此标志禁用检查 这纯粹是为git pull
内部使用与git fetch
进行通信,除非您实施自己的瓷器,否则您不应该使用它。
请注意,这些命令不会更新工作树
您仍然需要单独的git checkout -- .
。