假设这scratch
是一个远程仓库并且bough
是这个仓库中的一个分支。这意味着由 打印的行之一git branch -r
将是scratch/bough
。如果现在我执行
% git branch -t twig scratch/bough
Branch twig set up to track remote branch bough from scratch.
然后检查 的内容.git/config
,我看到其中添加了一个新部分:
[branch "twig"]
remote = scratch
merge = refs/heads/bough
该merge
属性的值可能会让人认为有一个文件.git/refs/heads/bough
,但实际上并没有这样的文件。但现在有一个文件.git/refs/heads/twig
:
.git/refs
├── heads
│ ├── master
│ └── twig
├── remotes
│ └── scratch
│ └── HEAD
└── tags
这让我意识到,要么这条线merge = refs/heads/bough
并不意味着我认为它的原因(IOW,该值指.git
的是现有文件的相对于 的路径),要么 git 中有一个非常重要的错误。
所以,让我们假设前者是这种情况。那么这条线的merge = refs/heads/bough
真正含义是什么?