同僚が新しいリモートブランチをOrigin/dev/homepageにプッシュしましたが、実行すると表示されません。
$ git branch -r
私はまだ既存のリモートブランチを見ています。
これは、ローカルのリモートrefが最新ではないため、git pullを実行したときに何も起こらなかったのは、git pullが現在の作業ブランチを正しくプルするだけだからだと思いますか?対応するリモートブランチに変更があるすべてのブランチをプッシュするgit Pushとは異なりますか?
最初に、コマンドgit ls-remote Origin
を使用して、ブランチが実際にリモートでプッシュされたことを再確認します。新しいブランチが出力に表示される場合は、コマンドgit fetch
を試してみてください:リモートリポジトリからブランチ参照をダウンロードする必要があります。
それでもリモートブランチが表示されない場合は、(ls-remote
出力で)リモートのブランチ名を確認してください。具体的には、refs/heads/
で始まるかどうかを確認してください。これは、デフォルトでは、remote.<name>.fetch
の値が次のとおりであるためです。
+refs/heads/*:refs/remotes/Origin/*
名前がrefs/heads/
で始まるリモート参照のみがrefs/remotes/Origin/
の下のリモート追跡参照としてローカルにマッピングされます(つまり、それらはリモート追跡ブランチになります)
.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'
git remote updateを実行すると、リモートリポジトリから利用可能なブランチのリストも更新されます。
バージョン1.8.3.0の時点でTortoiseGitを使用している場合、「Git-> Sync」を実行できます。表示されるウィンドウの左下に「Remote Update」ボタンがあります。それをクリックしてください。次に、「Git-> Switch/Checkout」を実行して、選択可能なブランチのドロップダウンに新しいリモートブランチを表示できるようにする必要があります。
私は時々同じ問題を抱えています。
最も簡単な答えは:
git fetch Origin <branch_name>
些細なことのように思えますが、私の問題は、適切なプロジェクトに参加していないことです。参加する予定のプロジェクトにいることを確認してください。そうしないと、正しいブランチをプルダウンできません。
最終的に私のために働いたのは、次のようにgit fetch
コマンドにリモートリポジトリ名を追加することでした:
git fetch core
これで、次のようにすべて表示できます。
git branch --all
ブルートフォースを使用し、リモートを削除してから追加しました
git remote rm <remote>
git remote add <url or ssh>