さて、refs/heads 内にある場合にのみ ref がブランチと見なされるかどうかはわかりません。. したがって、refs/heads の外部に格納された refs を「適切なブランチ」と呼ぶことができるかどうかはわかりませんが、ポイントは次のとおりです。
すべての通常のブランチがそうであるように、コミットへの参照があるが、参照/ヘッドの外に格納されているとしましょう。たとえば、git-notes で追加されたメモは、デフォルトで ref refs/notes/commits にこの方法で保存されます。
何らかの方法で、通常のブランチであるかのようにチェックアウトし (デタッチド ヘッド チェックアウトを実行しない)、その後、他の git コマンド (リベース、チェリー ピックなど) を使用して作業することはできますか?あたかも通常の refs/heads ブランチであるかのように?
通常git checkout
はコミットとしてのみチェックアウトし、リポジトリを分離ヘッド状態にすることを知っています。
私はうまくいくと思われる方法を見つけました。
git symbolic-ref HEAD refs/MyUnusualRefPath/MyUnusualRef
git checkout -f HEAD
そして、今回はやらなければならなかったことを行うことができたようですが、一般的にこれがサポートされているのか、サポートされているのか、少なくとも「現在はうまく機能している」操作なのかを知りたかったのです。将来それを信頼し、他の人にそれを利用するよう提案できるかどうか。
git checkout のソースを調べてみましたが、しばらくすると、Stack Overflow に質問を投稿した方がよいことが明らかになりました (もちろん、以前に Web で検索しました)。
後から考えると、(全体の) git ソース コードを調べるのにそれほど時間はかからなかったかもしれません。
リポジトリ間での(恐ろしく実装/文書化された)メモの共有に関する問題を解決するために、これが本当に必要でしたが、これに集中せず、上記の質問に答えるか、無視して、知識のある他の人に任せてくださいそれは答えます。