このgit
ための配管コマンドは次のとおりです。
git symbolic-ref HEAD refs/heads/existing_branch
デタッチされたヘッド状態になることはできません (SHA ではなく ref が必要です)。ただし、存在しない参照 (別名、未知のブランチ) に切り替えることはできます。それを防ぐには、おそらく次を使用しますgit alias
。
git config --global alias.switch '!f() { git show-ref --heads --verify "refs/heads/$1" && git symbolic-ref -m "switch to branch $1 not touching workdir" HEAD "refs/heads/$1"; }; f'
その後、のように使用できますgit switch existing_branch
。-m
でエントリを表示するオプションが必要であることに注意してくださいgit reflog
。これは通常、必要なものです。
ノート:
git reflog HEAD
の参照ログを示しますHEAD
(オプションで指定されたコメントが-m
再び表示されます)。完全なファイル (失われたコミットを見つけたい場合に備えて、前後の SHA を含む) は$(git rev-parse --git-dir)/logs/HEAD
(for HEAD
)に保存されます。
git show-ref --heads
RHS で使用できるすべての参照を一覧表示します。に示すように、引数が適切な (既存の) ref (別名ブランチ) であるかどうかを確認するalias
ために使用できます。--verify
- 注意:パックされた ref のような、またはパックされた ref 内
git symbolic-ref
の他の ref を指すことができます。これはおそらくあなたが望むものではないので、エイリアスはこれを に制限します。refs/tags/
refs/remotes/
refs/heads/