リモートブランチが「gitブランチ-r」に表示されない


138

私はリモートのBitbucketリポジトリにプッシュしており、最近、同僚が作成した新しいブランチを同じリポジトリにプッシュしました。

彼がアップロードした変更を取得しようとしています。

 $ git branch -a
 * master
 localbranch1
 localbranch2
 remotes/origin/master

$ git branch -r origin / master

BitbucketのWeb UIで、彼が作成したブランチを確認できます。これどうやってするの?

次の試み:

$ git fetch bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

彼が作成したブランチの名前がnew_branch_bの場合、次のように表示されますか?

$ git branch -r
origin/master
origin/new_branch_b

3回目の試行:

$ git remote update
Fetching bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

$ git branch -r
  origin/master

4回目の試行:

[remote "bitbucket"]
url = https://user@bitbucket.org/user/repo.git

bitbucket発信元ではなく、リモートを呼び出しました(少なくとも、これは私が覚えていることです。以前にセットアップしました)。

5回目の試行:

私はkanの答えに従ってBitbucketのリモート設定を更新しました:

$ git config -e

[remote "bitbucket"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/bitbucket/*

ほとんどの人にとってそれは起源と呼ばれます:

[remote "origin"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

その後、

$ git remote update

Fetching bitbucket
Password for 'https://user@bitbucket.org':
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 35 (delta 21), reused 0 (delta 0)
Unpacking objects: 100% (35/35), done.
From https://bitbucket.org/user/repo
 * [new branch]      branch_name1 -> origin/branch_name1
 * [new branch]      branch_name2    -> origin/branch_name2

.... 等々。

git fetch originも働くと思いますgit remote update


1
かっこいいですが、のrefs/remotes/bitbucket/*代わりに使う方が理にかなっているかもしれませんrefs/remotes/origin/*
kan

ありがとう、命名の一貫性について正式に言及しました。しかし、おそらくbitbucketをoriginに変更する方が理にかなっています!大会とそのすべて:)
12

1
git fetch origin仕事をします

回答:


107

このremoteセクションでは、フェッチルールも指定します。次のようなものをそれに追加して、リモートからすべてのブランチをフェッチできます。

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

(OR REPLACE originbitbucket。)

それについてはこちらをお読みください:10.5 Git内部-Refspec


3
これにより、Gitで進行中の分岐の問題が修正されました。突然、すべてのgitリモート更新が実際に機能し始めました。ありがとう!
PålOliver

2
どういうわけか、それはfetch = +refs/heads/master:refs/remotes/origin/master私のように見えました。私の問題master*修正して置き換えます。
Sebastian Blask、2015年

2
これは、浅いクローンを浅くないクローンに変換した場合に非常に役立ちます。
Warpzit 2016年

@kanなぜこれが時々起こるのか知っていますか?それは私git cloneがプロジェクトをしているときに起こります。私のローカルgitで特別なことをした覚えはありません。
dotnetCarpenter 2017

@dotnetCarpenterわからない...予期せず私に起こったことはない。clone中断されてから再開された可能性はありますか?または、何か他のものが同時にレポにアクセスしましたか?
kan

217

まだ更新していない場合は、リモコンを更新します。

$ git remote update
$ git branch -r

1
WinでGitHubクライアントを使用していますが、リモートブランチが更新されない場合があります。最初の行「git remote update」は魅力のように機能します。簡単でクリーン
Stefano Buora

git remote updateUIで新しいブランチが表示された後。ありがとう
Tinkaal Gogoi 2017

それは助けにはならなかった。
dKab 2017年

私はすでにブランチを正常にフェッチしたと思いますが、それがにリストされてgit branch -rいるのを確認するだけで済みました。上git-scm.com/docs/git-branchそれは、「リモート追跡ブランチが記載されていることになり-rオプション、およびオプション-aショー、ローカルとリモートの両方の枝を」と言います。git remote updateにリストされてgit remote -vいるすべてのリモートのすべてのブランチをフェッチします。
ロックリー

これを実行した後、私は実行することができgit checkout origin/master、その切り離されたヘッドから私のマスターブランチに分岐しましたgit branch master; git checkout master
Dfranc3373

34

--depthパラメータを使用してクローンを作成すると、.git/configすべてのブランチではなくマスターのみをフェッチするように設定されます。

パラメータを省略したり、設定ファイルを更新したりできます

fetch = +refs/heads/master:refs/remotes/origin/master

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

1
ありがとう!答えは実際に問題を簡単に修正し、それを行う正しい方法のようです。ただし、構成ファイルがにあることを追加して、他の.git/configユーザーが見つけられるようにする必要があります。
dotnetCarpenter 2017

19

同じ問題がありました。最も簡単な解決策は、リモートを削除して読み取り、フェッチすることです。


1
この答えを見つけるために多くの時間を費やしていた。これは問題なく動作しました。ありがとう。:)
kisanme 2016

1
私も働いた、これがそれを解決したのはかなり奇妙
CailinP 2017

1
git remote -vリモコンが表示されるので、URLを手に入れることができ、git remote rm origin削除し、git remote add origin <url>再度追加します。
Siddhartha

これでうまくいきました。どういうわけか、マスターよりもリモートブランチをフェッチしないgitサブモジュールがありました。削除して再度追加すると解決しました。
Zamrony P. Juhara

私のために働いたが、今私は警告を取得warning: ignoring broken ref refs/remotes/origin/HEAD
dafnahaktana

7

残念ながら、git branch -agit branch -rではないあなたは「フェッチGIT」を実行していない場合、あなたはすべてのリモートブランチを示しています。

git remote show origin常に一貫して動作します。git show-refGitリポジトリ内のすべての参照も表示します。ただし、git branchコマンドと同じように機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.