2012-07-17 35 views
12

私は最近masterブランチで作業していたブランチをマージしました。 origin/masterorigin/HEADの両方のブランチを作成したものを押したり引っ張ったりするときに何かをしなければなりません(git n00bのままです)。残念ながら、私はこれを実行したコマンドを記録していませんでした。現在、私のチームには、私がプロジェクトをチェックアウトしたときに得られないマスターコピーのコードがたくさんあります(新しい場所に私がcloneであっても)。私のgitブランチはSourcetreeの 'origin/master'と 'origin/head'を表示していますが、2つをマージする方法がわかりません

はここSourcetreeが表示されているもののスクリーンショットです:

2 branches

私は本当に私は任意のヘルプは大歓迎されますので、作業を続けることができますので、これは解決を取得する必要があります。

+0

これは心配する必要はありません。私はまた、私のリポジトリのいくつかでそれを持っていますが、それは 'origin/master'へのポインタのようなものです。 'git branch -r'を実行すると、これが見えます。 – Shahbaz

+0

うーん...私のマスターが私のチームメイトが持っているものと同期がとれていない理由についてのアイデアはありますか? –

+0

もちろん、異なるリポジトリがあるので、それらを同期させる必要があります。だから、あなたの質問は実際には "あなたの仕事を"起源 "のものとマージする方法ですか? – Shahbaz

答えて

6

origin/で始まるブランチは、いわゆる「リモートトラッキング」です。 gitがそのリポジトリから最後にフェッチしたときのブランチの位置をリポジトリoriginに伝えます。

これは心配するものではありません。これは実際に役立つ情報です。ブランチポジションが古くなっていると思われる場合は、

git fetch origin 

...を実行することができます。

いずれのリポジトリでも、HEADは、現在のブランチ(または特定のブランチにない場合は現在のコミット)を表す特別な種類のref( "symref")です。


あなたのmaster分岐が実際には1つは、先にorigin/masterのコミットである図に見ることができるので、最近同僚がoriginmasterにプッシュされているとあなたがgit fetch origin(または同等のもの)を実行した場合、あなたが既に持っていますすべての仕事。しかし、あなたがそれを押すまで、彼らはあなたのコミットを見逃してしまいます。

あなたは言う:

は現在、私のチームは、私はプロジェクトをチェックアウトするとき、私は(私は新しい場所にクローンを作成しても)届かない彼らのマスターコピーにコードの束を持っています。

この場合、おそらく別のブランチや別のリポジトリに移動している可能性があります。まったく作業をプッシュしていない可能性があります。

+0

'git merge origin/' ''を現在チェックアウトしているブランチとマージします。そうすれば、 'origin'のブランチのコピーを更新するだけでなく、実際にローカルのブランチに変更を加えることができます。 – Shahbaz

+1

OPの状況では、「原点/マスタ」をマージすることは何もしないため、「原点」は「原点/マスタ」より先行しているため、言及していませんでした。 –

+0

はい、私はちょうど答えをより完全にするように言った。彼は「現時点で、私のチームは、私がプロジェクトをチェックアウトしたときに得られないマスターコピーにコードを集めている」と言ったので、あなたは彼に「git fetch」と言った。それに続いて、併合する。 – Shahbaz

7

あなたが望むならば、これは単なるマスターへのポインタであり、シンボリックリンクです。あなたは安全に端末(またはWindowsユーザのためのgit bashの/ cygwinの)中に次の操作を行って、それを削除することができます。

  1. 実行リポジトリへ
  2. をナビゲート:git remote set-head origin -d

を、今ではなくなってしなければなりません:

$ git branch -r 
origin/master 
関連する問題