1. ホーム
  2. git

[解決済み] リモートブランチが "git branch -r" で表示されない

2022-04-22 11:19:19

質問

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

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

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

$ git branch -r オリジン/マスター

Bitbucket の Web UI で、彼が作成したブランチを見ることができます。どうすればいいのでしょうか?

次に試してみてください。

$ git fetch bitbucket
Password for 'https://[email protected]':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

もし、彼が作ったブランチが ニューブランチビー と表示されることを期待すればよいのでしょうか?

$ git branch -r
origin/master
origin/new_branch_b

3回目の挑戦

$ git remote update
Fetching bitbucket
Password for 'https://[email protected]':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

$ git branch -r
  origin/master

4回目の挑戦

[remote "bitbucket"]
url = https://[email protected]/user/repo.git

リモートを呼び出した bitbucket オリジンではなく、(少なくとも私の記憶では、少し前にセットアップしたものです)

5回目の挑戦

の通り、Bitbucketのリモート設定を更新しました。 kanさんの回答 :

$ git config -e

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

ほとんどの人は、オリジンと呼ぶでしょう。

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

その後

$ git remote update

Fetching bitbucket
Password for 'https://[email protected]':
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 .

解決方法は?

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

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

(または originbitbucket .)

ぜひこちらもご覧ください。 10.5 Git の内部 - Refspec について