git FETCH_HEAD 短暂引用

标签 git

  1. 我阅读了 here那 git FETCH_HEAD 是一个短暂的引用。 git FETCH_HEAD 引用的生命周期是多少?

  2. 当我执行 git fetch origin 时,在这种情况下会更新许多远程跟踪分支。 FETCH_HEAD 指向哪里?

最佳答案

  1. 这根本不是真正的引用;引用是指向单个提交的指针(或者,在 HEAD 的情况下,是分支名称)。 FETCH_HEAD 而是关于上次获取的分支的 git 元数据。它一直存在,直到被另一个 fetch 重写

  2. 这不是真正的引用,包含所有有关已获取的远程跟踪信息的信息。

当您运行 git merge FETCH_HEAD(或通过运行 git pull 隐式执行此操作)时,git 会特别对待它,而不是将其视为普通引用。相反,将查询 FETCH_HEAD 文件,并且 git 将查找没有给它的特殊标记 not-for-merge 的分支。该分支将用于 merge 。 (Git 根据与您的 git fetch 调用对应的远程跟踪分支或您运行它时所在的分支来确定此分支。)

请注意,在 FETCH_HEAD 中,还包括有关远程分支的详细信息,这允许 git 为 merge 提交创建一条消息,详细说明该分支来自何处 . (例如,“Merge of branch 'master' of https://my.visualstudio.com/my/repository”)。

FETCH_HEAD,就像很多 git 存储库元数据一样,只是一个文本文件;阅读它以了解它在每次获取后如何变化是非常有启发性的。 (例如,您可以看到您链接到的答案非常不正确,FETCH_HEAD 确实包含单个分支的信息,它包含所有 Remote 上的分支。)😃

关于git FETCH_HEAD 短暂引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50568263/

相关文章:

sql - 如何在golang中安装包

bash - 如何将复杂的文件 glob 传递给子 shell?

git - 替换远程 git 仓库 (Heroku)

linux - 在 vim 中执行打开默认编辑器命令

java - 如何加载/添加第三方jar文件到bitbucket?

git - 在 BitBucket 上阻止 merge ,直到 Jenkins 任务完成

git - 使用不需要的未跟踪文件重新定位。错误 merge

git - 如何在 git 中共享一个配置文件?

python - 尝试在 DockerFile 中 pip 安装私有(private)存储库

git "shallow clone + unshallow"与 "normal clone"