2012-10-06 10 views
47

同僚が起源の/ dev /ホームページに新しいリモートブランチをプッシュして、私が実行したとき、私はそれを見ることができない。Gitリポジトリ:新しいリモートブランチを見ることができません

$ git branch -r 

私はまだリモートブランチを既存の参照してください。

私のローカルのリモート参照は最新ではないので、私はgit pullを実行したときに何も起こらなかったので、git pullは現行の作業ブランチを正しい状態に戻しているからです。対応するリモートブランチに変更を加えたすべてのブランチをプッシュするgit pushとは異なりますか?

答えて

79

最初に、ブランチが実際にリモートでプッシュされていることを、コマンドで確認してください。新しいブランチが出力に現れる場合は、git fetchというコマンドを実行してください:リモートリポジトリからブランチ参照をダウンロードする必要があります。

リモートブランチがまだ表示されない場合は、リモコンのブランチ名は何ですか(ls-remote出力)。具体的には、refs/heads/で始まる場合に確認してください。

+refs/heads/*:refs/remotes/origin/* 

ので、名前がrefs/heads/で始まるだけで、リモート参照がrefs/remotes/origin/の下で、リモート追跡参照としてローカルにマップされること(すなわち、それらはリモート - になるだろう:デフォルトでは、remote.<name>.fetchの値であるためであります

+1

git fetch originを実行した後に新しいリモートブランチが表示されましたが、git fetchを実行した場合の違いはわかりません。私はgitのリモートアップデートについて読んだが、それが何をしたのかはっきりしなかった。ここから新しいリモートブランチのためにgit fetchを実行する必要がありますか? – hybrid9

+0

@ hybrid9 'git fetch'を使うと、gitは' .git/config'で指定されたデフォルトのリモートリポジトリから参照をダウンロードします:通常は 'origin'と呼ばれるので、両方のコマンドは同等ですが、特定の構成が何らかの理由で異なる場合があります。いいえ、すべてのブランチに対して 'git fetch'を与える必要はありません(デフォルトでは**すべて**ブランチをフェッチします)。 –

+0

私のgitは、デフォルトでは自分の設定に変更はありません。申し訳ありませんが、新しいリモートブランチを追加する必要がある場合は、git fetch originを実行して追跡する必要があります。 gitフェッチが、私がまだ仕事をしているときに、開発やマスターのような他のリモートで追跡された枝に何をするか心配です。私はフェッチする前にそれらを引き出すべきだと思いますか? – hybrid9

19

gitリモートアップデートを実行すると、リモートリポジトリから利用可能なブランチのリストも更新されます。

バージョン1.8.3.0からTortoiseGitを使用している場合、「Git - > Sync」を実行すると、表示されるウィンドウの左下に「Remote Update」ボタンが表示されます。それをクリックします。次に、 "Git - > Switch/Checkout"を実行して、選択できるブランチのドロップダウンに新しいリモートブランチを表示させることができます。

git fetch core 

は今、あなたは、このようにそれらのすべてを見ることができます:

git branch --all 
+11

'git remote update'は古い方法ですこれを行うために、より新しい優先コマンドは 'git fetch'です。 –

1

は最終的に私のために働くことは、このように、git fetchコマンドにリモートリポジトリ名を追加しました.git/config

[remote "origin"] 
    url = … 
    fetch = +refs/heads/master:refs/remotes/origin/master 

もしそうなら、CHAが含まれているかどうか確認してくださいNGEそれは、あなたがそれを使用することができるはず

[remote "origin"] 
    url = … 
    fetch = +refs/heads/*:refs/remotes/origin/* 

を避ける:

$ git fetch 
remote: Counting objects: … 
remote: Compressing objects: .. 
Unpacking objects: … 
remote: … 
From … 
* [new branch]   branchname -> origin/branchname 
$ git checkout branchname 
Branch branchname set up to track remote branch branchname from origin. 
Switched to a new branch 'branchname' 
9

終わった何

0

それは些細な音が、私の問題は、私は右のプロジェクトではなかったということでした。あなたが期待しているプロジェクトにいることを確認してください。そうしないと、正しいブランチをプルダウンできなくなります。

関連する問題