现在,我不知道一个 ref 是否只有在 refs/heads 内部时才被认为是一个分支,实际上这个问题之前的标题是如何检查存储在 refs/heads 之外的分支?. 所以我不确定存储在 refs/heads 之外的 refs 是否仍然可以称为“正确的分支”,但重点是:
假设我有一个提交的引用,就像所有正常的分支一样,但存储在 refs/heads 之外;例如,使用 git-notes 添加的注释以这种方式存储,默认情况下在 ref refs/notes/commits 中。
是否仍然可以以某种方式将其签出,就好像它是一个正常的分支(不进行分离头签出),然后使用其他 git 命令(rebase、cherry-pick 等)进行处理,好像它是一个普通的 refs/heads 分支?
我知道正常git checkout
只会将其作为提交检出,将存储库置于分离头状态。
我确实找到了一种似乎可行的方法,即:
git symbolic-ref HEAD refs/MyUnusualRefPath/MyUnusualRef
git checkout -f HEAD
显然,我这次能够做我必须做的事情,但我想知道总的来说,这是否是受支持的,或受支持的,或者至少“现在它运作良好”,操作,以及如果我将来可以依靠它并建议其他人使用它。
我试图查看 git checkout 的源代码,但过了一段时间很明显,我最好在 Stack Overflow 中发布一个问题(当然,我之前在网上搜索过)。
事后看来,研究(整个)git 源代码可能需要更少的时间。
我确实需要这个东西来解决在存储库之间共享(可怕的实现/记录的)注释的问题,但请不要专注于这个,只回答我上面的问题,或者忽略它,让其他了解的人它回答。