「gitのブランチ-r」を実行しているのに、なぜ「起源/ HEAD」が示されていますか?

StackOverflow https://stackoverflow.com/questions/354312

  •  21-08-2019
  •  | 
  •  

質問

あなたがgit branch -rを実行すると、

なぜブレーズは、それがorigin/HEADをリストしていますか?マスターと素晴らしい-機能:たとえば、GitHubの上のリモートレポあります、2つの支店を持つ、と言います。私はそれをつかむと、その後、私の新しいディレクトリに移動して、枝をリストするgit cloneをすれば、私はこれを参照してください。

$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature

または何ため、それは(アルファ?私は無実のレポ秘密のアイデンティティを維持するために、この例を偽造しています)になります。だから、HEAD事業は何ですか?それは彼らのpushを持っていたHEADする最後の人は、彼らが押されたときに指摘は何ですか?それは常に、それは彼らがpushedたものは何でもではないでしょうか? HEADsは動き回る...なぜ私は誰かのHEADは、別のマシン上で指摘気にしますか?

私は、リモートの追跡などのハンドルを取得していますので、これは1つの長引く混乱です。ありがとう!

編集:私は(誰もでsshをしないと、そのコードで動作しますが、のみ、などを引っ張ったり、押しますGitHubのような)リモートリポジトリを捧げた印象の下にいなかったし、そこにあったのでHEADを持つべきではありません、基本的に、ノー作業コピー。そうではない?

役に立ちましたか?

解決

@robinst の正しい

(クローンを作成するとき、すなわち)

のgitでは、デフォルトでチェックアウトされたブランチを選択することができます。デフォルトでは、origin/HEADはその時に指します。

GitHubの上、あなたはのための管理者設定でこのに変更することができますあなたGitHubのレポ。また、

を経由して、コマンドラインからそれを行うことができます
git remote set-head origin trunk

または

を経て完全に削除
git remote set-head origin -d

のrel="noreferrer">。 「スイッチ・支店」ドロップダウンを見てください。 trunkがチェックされているので、origin/HEADtrunkに従います。

他のヒント

裸のリポジトリは、HEADを持つことができる理由は、それが決定するので、分岐が最初にリポジトリのクローン後にチェックアウトされているということです。

通常、マスターするHEADポイント、それは人々がリポジトリのクローンを作成する際にチェックアウトされたブランチです。そのブランチでの結果はクローンにチェックアウトされている(裸のリポジトリにHEADを編集して)別のブランチにそれを設定します。

  

私は印象の下にあったこと   GitHubのような専用のリモートリポジトリ(   誰もでsshをしないと上で動作する場所   そのコードが、唯一のプルまたはプッシュ、など)   HEADを持つべきではありませんしませんでした   いいえ、基本的には、そこにあったので、   作業コピー。そうではない?

あなたが言ったように私はまったく同じ印象を持っています。

そして、私も実行してgithubのからクローン化され、その起源/ HEADのリモート追跡ブランチを削除することはできません。

git branch -d -r origin/HEAD

このは効果がありませんでした。

いくつかのいずれかが、私はその起源/ HEADのリモート追跡ブランチを削除する方法を教えてもらえます?

更新

githubのからクローンが、私はそれを削除する方法を見つけたとき、原点/ HEADが作成された理由を、私は見つかりませんでしたけど。

のgitの新しいバージョンが提供する

git remote set-head <name> -d

リモート追跡ブランチの無駄なヘッド・ポインタを削除します。

そして、我々はまた、我々は

を使って、好きにダムデフォルト名「起源」を変更することができます
git remote rename origin <new_name>

これが役立つことを願って。 :)

「起源」はリモートリポジトリである場合には、その後の原点/ HEADは、そのリモートリポジトリ上のデフォルトのブランチを識別します。

例:

$ git remote show
origin
$ git remote show origin
* remote origin
  Fetch URL: git@github.com:walkerh/pipe-o-matic.git
  Push  URL: git@github.com:walkerh/pipe-o-matic.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

「:マスターHEADブランチ」という行に注意してください。リモートリポジトリは、クライアントは、デフォルトでチェックアウトしたブランチ知ることができます場所です。

(またはしないかもしれマスターでもよい)、リモートレポで現在チェックアウトされた分岐に にポイントをHEADが常にあります。でも、リモートリポジトリは、現在の枝を持っています。通常はマスターである、と私の頭の上から、私は1つがそれを変更する理由何らかの理由を考えることはできませんが、それを変更することができます。

私の推測では、誰かがブランチをプッシュして、HEAD、それを呼ばれるということです

git push origin HEAD
scroll top