2016-10-25 8 views
0

他の人のブランチをチェックアウトしてトラッキングしました。別のブランチをチェックアウトしました。ヘッドが依然としてマスターブランチを指している理由

git checkout --track origin/foo 

しかし、私は別のブランチ(ないmasterブランチ)をチェックアウトしていても、なぜHEADはまだmasterを指していますか?

git branch -aと入力すると、これが表示されます。だから私は、私は基本的に他の誰かのブランチをチェックアウトし、それに仕事をしたいgit reset HEAD^ --hard

master 
* foo 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/foo 

のようなものを行うことはできません。 また、ブランチにコミットして押し込みます。

+0

私はこの支部にコミットすることができますか?たとえこのブランチが別のユーザーによって生成されたとしても? 'git push'に' -u'オプションを付ける必要があるようなポストをいくつか見ましたか? –

答えて

1

ちょうどgit checkout fooにできるはずです。自動的に正しい上流ブランチを追跡することがわかります。

0

HEADは、masterを指していません。この出力:

* foo 

は、ローカルHEADfooを指していることを意味します。アスタリスク(*)はHEADを表します。

あなたはこのラインで混乱していることがあります。

remotes/origin/HEAD -> origin/master 

リモートHEADがリモートmasterを指していることを意味しています。これはローカルHEADには影響しません。

@eddiem mentionedとして、将来的には、origin/fooを追跡するローカルブランチをチェックアウトするだけの操作を行います。

git checkout foo 

(これはすでにローカルブランチがfooと呼ばれていない前提としています。)

+0

"remotes/origin/HEAD - > origin/master"はい、私はこの行で混乱しました...コメントをありがとう! –

関連する問題