0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gitでクローンが上手く出来ない(ブランチが全て取得できない)場合の対処法

Posted at

Git クローン時に全ブランチが取得できなかった問題と解決策

📝 はじめに

Git でリモートリポジトリをクローンした際に、すべてのブランチが取得できない という問題に直面しました。
本記事では、その際に試した対処方法と、最終的な解決策を紹介します。


🚨 発生した問題

Git でプロジェクトをクローンした際、以下の問題が発生しました。

  • クローンをしたが、非常に時間がかかる+master しか取得できず、他のブランチが見えない!**

🔍 試した対処方法

この問題を解決するために、以下の2つの方法を試しました。


① バッファサイズの拡張(自分のケースでは効果なし)

git config --global http.maxRequestBuffer 1073741824

📌 解説

  • git cloneHTTP 経由 でリポジトリを取得するため、http.postBuffer のサイズが影響する
  • この設定を大きくすることで、clone の速度向上やエラー (RPC failed) の回避が期待できる
  • 100MB → 1GB に増やすことで改善することが多い

❌ 結果

今回のケースでは、クローンが遅かった原因は fetch 設定にあったため、この方法では解決しなかった


git config --list で設定をチェックし、fetch 設定を修正(解決!)

git config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

📌 解説

  • 通常、git clone すると、fetch のデフォルト設定は main(または master)ブランチのみを取得 するようになっていることがある

  • 設定を確認するには以下を実行

    git config --get remote.origin.fetch
    

    デフォルトの出力(main ブランチのみ取得する場合)

    +refs/heads/main:refs/remotes/origin/main
    

    この場合、main しかフェッチしない設定になっている!

  • これを +refs/heads/*:refs/remotes/origin/* に変更することで、すべてのブランチをフェッチ可能に! 🎉

✅ 結果

git fetch origin
git checkout develop  # 例: develop ブランチを使いたい場合

すべてのリモートブランチが取得できるようになり、問題が解決しました!


🎯 まとめ

No 方法 結果
http.maxRequestBuffer を増やす ❌ 効果なし
remote.origin.fetch を修正 解決!

✨ 結論

Git の fetch 設定がデフォルトで main のみになっている場合があるため、
+refs/heads/*:refs/remotes/origin/* に変更することで すべてのブランチを取得できるようになる!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?