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

2020年9月7日

お客様の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先を変更する

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

 

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

 

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

 

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

 

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

 

まとめ

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

 

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

 

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

 

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

 

参考

 
 

この記事を書いた人

松永裕太郎

松永裕太郎

関連記事

おすすめの記事