2012-09-27 7 views
41

出力の2行目がgit branch -l -aremotes/origin/HEAD -> origin/masterにはわかりません。私の `git branch -l -a`出力に` remotes/origin/HEAD - > origin/master`エントリがあるのはなぜですか?

git branch -l -a 
* master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 

これは別の操作の残存ですか?私はそれを掃除すべきですか?そして私はそれをどうやってやるのだろう?

通常、私はcliでgitで作業しますが、このローカルリポジトリでは、TortoiseGitを実験して、友人にとって簡単なgitワークフローを見つけました。

+1

[git branch -r "を実行しているときに[origin/HEAD]が表示されるのはなぜですか?](http://stackoverflow.com/questions/354312/why-is-origin-head-shown-実行時-git-branch-r) –

+0

ところで、 '-l'はおそらくあなたが望むことをしません。一般的には、[reflogを作成する](https://git-scm.com/docs/git-branch#git-branch--l)ですが、ここではおそらく省略されています。すべてのブランチを表示するには、 'git branch -a'で十分です。 – Palec

答えて

28

いいえ、クリーンアップする必要はありません。リモートレポが参照するシンボリックブランチです。
レポをクローンすると、デフォルトでremotes/origin/HEADで参照されるブランチになります。

も参照してください:

+1

簡潔な答えとリンクのためのThx。私は、このテストレポをリモート/原点/ HEADリファレンスを持たない別のものと比較したので、私は混乱していたと思います。 他のレポは、私がギブスにプッシュした元のレポでしたので、今までクローンされていませんでした。これがクローンされていないことがHEADリファレンスを含まない理由であることは間違いありませんか? – mistaecko

+1

@mistaeckoはい、正しいです。 – VonC

+4

削除したい場合: 'git remote set-head origin -d'、http://stackoverflow.com/a/6838756。 –

21

あなたは照会するorigin/HEADシンボリック参照、またはgit remote set-head origin -aを削除するためにgit remote set-head origin -dを使用することができますリモートで自動的にリモートの現在のブランチへのポインタを設定します。

origin/HEADの参照はオプションです。これは構文上のショートカットとしてのみ機能します。存在し、origin/masterを指している場合は、具体的にはoriginを使用します。具体的には、origin/masterを指定します。

git remote(1) manページには、この説明:

セットヘッド

設定またはという名前のデフォルトのブランチ( シンボリック-refのレフリー/リモコン// HEADのすなわちターゲット)を削除しますリモート。 リモートのデフォルトブランチを持つ必要はありませんが、特定のブランチの代わりに リモートの名前を指定することができます。たとえば、 originのデフォルトブランチがmasterに設定されている場合、オリジンはorigin/masterを指定する場合は常に になります。

+0

'git branch -l -a'などと呼んで、HEADや他のシンボリックリファレンスをフィルタリングすることは可能ですか? –

+0

あなたは 'git branch --list -a | grep -v ' - >' ' –

+0

しかし、このハックは非常に信頼性が低いです。すべての "例外"を知る方法... –

関連する問題