時給単価UP【3大特典付き】
コーディングテクニック集100選⋙

【解決】SourceTreeで重いサイズを分割クローン【リモートブランチ表示】

記事内に広告を含みます

パソ君
パソ君

・SourceTreeでサイズが重すぎてクローンできない。どうすればよい?

こんな疑問にお答えします。

リポジトリによっては、サイズが重たすぎてSourceTreeでクローンするとエラーがでることがあります。

このままではエラーがでてクローンができません。

そんなときはターミナルより分割クローンをすればOK。

ジト
ジト

すぐにできるよ!

ということで、この記事では「重いサイズを分割クローンする方法」について解説していきます!

この記事でわかること

・重いサイズを分割クローン
・リモートブランチが表示されないバグを解決

【SourceTree】重いサイズを分割クローンする方法

分割クローンはSourceTreeではなく、ターミナルより行います。

ターミナルにてクローンしたいディレクトリに合わせて、下記コードを1行ずつおこないます。

% git clone --depth 1 http://example.com/test.git
% git fetch --depth 10
% git fetch --depth 100
% git fetch --unshallow

コードの意味は下記。

  • 最新のコミット1つをクローン
  • コミットの深さを徐々に大きくする
  • 全ての子ミット履歴を取得する

順に解説してきます。

➀:最新のコミット1つをクローン

まず下記コードにて分割クローンを行います。

% git clone --depth 1 http://example.com/test.git

「–depth 1」が最新のコミット1つをという意味。

ようは指定URLの最新コミット1つをクローンするということですね。

➁:コミットの深さを徐々に大きくする

これでひとまず1コミットクローンできたので、あとは過去コミットを少しずつ取得します。

やり方は「–depth 10」「–depth 100」のように、少しずつ数値を上げていきましょう。

% git fetch --depth 10
% git fetch --depth 100

いきなり数値を上げすぎるとまたエラーになる可能性もあるので、すこしずつ。50〜100ずつが良いかと。

➂:全ての子ミット履歴を取得する

けっこうな数値の過去コミットまで取得できたら、あとは一気に残りのコミットをクローンします。

そのやり方が下記コードですね。

% git fetch --unshallow

これで重いリポジトリを分割してクローンすることができました。

【SourceTree】分割クローンでも重すぎてエラーが出る場合

先述した分割クローンのやり方でもエラーが出る場合もあります。

そんなときは「buffer」のサイズを上げるのもありかと。

やり方は下記コードです↓

% git config http.postBuffer 157286400

157286400は157 MBのこと)

これにより一時的にサイズを調整して、対処することができるかもしれません。

【SourceTree】分割クローンしたあとリモートブランチが表示されないバグ

先述した分割クローンをして、フェッチをしてもリモートブランチが表示されないことがあります。

本来は「develop」や「feature」ブランチがあるのに、「main」ブランチしかないなど。

この場合下記を行えば解決可能です。

  • 隠しファイルを表示
  • 「.git/config」ファイルを表示
  • 「fetch」のコードを集成

順に解説します。

①:隠しファイルを表示

まず分割クローンしたディレクトリ内で、隠しファイルを表示しましょう。

表示方法は下記↓

  • Mac⇒「command」+「shift」+「.」
  • Windows⇒「エクスプローラー> 表示 > 表示 > 隠しファイル」 

②:「.git/config」ファイルを表示

隠しファイルが見えたら「.git/config」ファイルを選択して、VS Code等で開きましょう。

③:「fetch」のコードを集成

すると「fetch」と書かれたコード内容が、下記のようになっているかと思います↓

fetch = +refs/heads/develop:refs/remotes/origin/main

これだと末尾にあるブランチしかフェッチされません。(この例だとmainブランチのみ)

そのため下記のように「*」をつけて修正して保存しましょう。

fetch = +refs/heads/develop:refs/remotes/origin/main

↓ 下記の様に修正

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

その後SourceTreeを見てみると、他のリモートブランチも表示されているかと。

それでもリモートブランチが表示されない場合

先述した「.git/config」ファイルを修正しても、リモートブランチが表示されない可能性もあります。

そんなときはSourceTreeのリポジトリのパスを修正してみましょう。

下記画像のように「右上の設定」⇒「リモートのタブ」⇒「パスを選択」⇒「編集」で修正可能です。

下記のように「https」にして、指定位置にユーザー名を記述してみてください。

https://(ここにユーザー名)@github.com/(ここにユーザー名)/(プロジェクト名).git

これでリモートブランチが表示されるかもしれません。

他にもSourcetreeで使えるものをまとめていますので参考にどうぞ↓

【解説】SourceTreeでよく使うものをまとめてみた

【解決】SourceTreeで重いサイズを分割クローン【リモートブランチ表示】:まとめ

  • 「–depth」にて分割クローン
  • 「buffer」のサイズ調整もあり
  • リモートブランチが表示されない場合「.git/config」の「fetch」を修正
  • それでも表示されない場合はリモートリポジトリのパスを修正
ジト
ジト

重いサイズを分割クローンしたい時はためしてみてね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA