我在这里读到git FETCH_HEAD 是一个短暂的参考。git FETCH_HEAD 参考的生命周期是多少?
当我这样做时git fetch origin,在这种情况下会更新许多远程跟踪分支。FETCH_HEAD 将指向哪里?
它根本不是真正的参考。引用是指向单个提交的指针(或者,在 的情况下HEAD,是分支名称)。 FETCH_HEAD取而代之的是关于上次获取的分支的 git 元数据。它一直存在,直到被另一个fetch重写
它不是真正的参考,包含有关获取的远程跟踪信息的所有信息。
当您运行git merge FETCH_HEAD(或通过运行隐式运行git pull)时,git 会特别对待它,而不是像普通引用一样。相反,该FETCH_HEAD文件将被查询,并且 git 将寻找一个没有not-for-merge赋予它的特殊标记的分支。该分支将是用于合并的分支。(Git 根据与您的git fetch调用相对应的远程跟踪分支或您运行它时所在的分支来确定此分支。)
请注意,在 中FETCH_HEAD,还包括有关远程分支的详细信息,这允许 git 为合并提交创建一条消息,该消息详细说明该分支来自何处。(例如,“ Merge of branch 'master' of https://my.visualstudio.com/my/repository”)。
FETCH_HEAD与大部分 git 存储库元数据一样,只是一个文本文件;阅读它以了解每次获取后它的变化非常有启发性。(你可以看到,例如,你链接到的答案是非常不正确的,这FETCH_HEAD确实不包含单个分支的信息,它包含了所有的遥控器上的树枝。)