Gitの画像
開発環境&ツール

【Git】Backlog間でのリポジトリ移管方法

2020年9月7日

目次Category


お客様のBacklogから、社内管理下のBacklogへGitリポジトリを移管しました。

移管方法にはいくつかあるようですが、今回は「–mirror」オプションを使った方法で行いました。

その方法をご紹介したいと思います!

 

「–mirror」とは

「git clone」コマンドには、様々なオプションがあります。

・チェックアウトしたいブランチを指定する「–branch」
・IPv4のみを使用する「–ipv4」
・指定したブランチのみを複製する「–single-branch」

そのオプションのうちの1つが「–mirror」です。

ミラーリポジトリを作成してローカルに複製するためのオプションです。

 

ミラーリポジトリとは

「bareリポジトリ」とも呼ばれるようです。

これは「ワーキングディレクトリが存在しない」リポジトリのことです。

つまり、実際のソースコードがなく、更新履歴やブランチ、タグなどといったGitの情報のみを保持しているリポジトリのことです。

このようなリポジトリは、慣習的に「.git」拡張子をつけます。

 

Git移管の手順

それでは、移管を行っていきましょう!
 
# ローカルリポジトリへ移動
cd ローカルリポジトリ

 

# リモートリポジトリのURLを確認
git remote -v

 

# 1つ上の階層へ移動
cd ..

 

# ミラーリポジトリとしてクローンする
git clone --mirror [リモートリポジトリURL] [クローンするリポジトリ名(任意)]

 

# 以下のように表示されたらクローン完了
Resolving deltas: 100% (35000/35000), done.

 

cd [クローンしたリポジトリ名]
git push --mirror [移管したい新リポジトリURL]

 

Username for 'BacklogのURL': [メアドを入力]
Password for '[入力したメアド]@BacklogのURL': [パスワードを入力]
 
しばらく待って、完了です!

 

お疲れさまでした。

 

エラーが起きた場合の対処法

PUSHを実行した後、以下のようなエラーが起きる場合があります。

Enumerating objects: 96234, done.
Counting objects: 100% (96234/96234), done.
Delta compression using up to 12 threads
Compressing objects: 100% (46764/46764), done.
Writing objects: 100% (96234/96234), 316.84 MiB | 6.98 MiB/s, done.
Total 96234 (delta 44730), reused 96234 (delta 44730), pack-reused 0
error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date

調べてみると、どうやら通信回線の速度や、ファイルの容量が影響しているようです。

バッファサイズを変更するなどして対応しましょう。

 

【要注意】PUSH先を変更する

PUSH先を変更しておかないと、旧リポジトリへPUSHしてしまいます。

 

業務で行っていると大変です!

 

リポジトリ移管が終わったら、PUSH先を変更しましょう。
 
#現在のPUSH先を確認
git remote -v

 

# PUSH先を変更
git remote set-url origin [新リポジトリURL]

 

#変更されていることを確認
git remote -v

 

まとめ

個人的に、このミラーリポジトリを使った方法が手軽だと感じました。

現在あるリポジトリにブランチを全てチェックアウトして、新リポジトリへ「総PUSH!」みたいな方法もあります。

こちらは試していませんが、結構時間がかかりそうです。。。

Gitにはいろんなコマンド、オプションがあるので一通り触っておくと良いかもしれませんね。

 

参考

 
 

この記事を書いた人

松永裕太郎

松永裕太郎

●2018年 新卒入社
●スマホアプリ /サーバサイド開発 /新卒研修講師
●最近はアジャイル開発について勉強中

同じカテゴリーの記事

    関連記事はありませんでした。

同じカテゴリの記事を読む