web-dev-qa-db-ja.com

Git:新しいリモートブランチが表示されない

同僚が新しいリモートブランチをOrigin/dev/homepageにプッシュしましたが、実行すると表示されません。

$ git branch -r

私はまだ既存のリモートブランチを見ています。

これは、ローカルのリモートrefが最新ではないため、git pullを実行したときに何も起こらなかったのは、git pullが現在の作業ブランチを正しくプルするだけだからだと思いますか?対応するリモートブランチに変更があるすべてのブランチをプッシュするgit Pushとは異なりますか?

92
hybrid9

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

それでもリモートブランチが表示されない場合は、(ls-remote出力で)リモートのブランチ名を確認してください。具体的には、refs/heads/で始まるかどうかを確認してください。これは、デフォルトでは、remote.<name>.fetchの値が次のとおりであるためです。

+refs/heads/*:refs/remotes/Origin/*

名前がrefs/heads/で始まるリモート参照のみがrefs/remotes/Origin/の下のリモート追跡参照としてローカルにマッピングされます(つまり、それらはリモート追跡ブランチになります)

127
Marco Leogrande

.git/configが含まれているかどうかを確認します

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

もしそうなら、それを言うように変更します

[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'
44
Jesse Glick

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

バージョン1.8.3.0の時点でTortoiseGitを使用している場合、「Git-> Sync」を実行できます。表示されるウィンドウの左下に「Remote Update」ボタンがあります。それをクリックしてください。次に、「Git-> Switch/Checkout」を実行して、選択可能なブランチのドロップダウンに新しいリモートブランチを表示できるようにする必要があります。

29
metaforge

私は時々同じ問題を抱えています。

最も簡単な答えは:

git fetch Origin <branch_name>

28

些細なことのように思えますが、私の問題は、適切なプロジェクトに参加していないことです。参加する予定のプロジェクトにいることを確認してください。そうしないと、正しいブランチをプルダウンできません。

3
BlackHatSamurai

最終的に私のために働いたのは、次のようにgit fetchコマンドにリモートリポジトリ名を追加することでした:

git fetch core

これで、次のようにすべて表示できます。

git branch --all
1
Serj Sagan

ブルートフォースを使用し、リモートを削除してから追加しました

git remote rm <remote>
git remote add <url or ssh>
0
Rubber Duck