リポジトリを Bitbucket から GitBucket に移行する方法

リポジトリを Bitbucket から GitBucket に移行する方法 技術ネタ

先日、自宅サーバに GitBucket をインストールしたため、その環境に Bitbucket からリポジトリを移行する手順になります。

なお、GitBucket のインストールは、以下の記事を参照してください。
※この記事で説明する手順は、その記事を前提に書いています。

自宅サーバに GitBucket をインストールする方法

自宅サーバに GitBucket をインストールする方法

2019年3月28日


GitBucket にリポジトリ作成

まずは、GitBucket に空のリポジトリ作成します。

具体的には、ブラウザで GitBucket にアクセスし、以下の手順で操作します。

  • 右上の「+」をクリックし「New repository」を選択
  • 表示された「Create a new repository」ページで、「Repository name」に適当な名前を入力する。
    下にあるラジオボタンで「Create an empty repository」を選択し、ページ最下部の「Create repository」をクリック。

Bitbucket からcloneし、 GitBucket にpush

次に、移行対象のリポジトリを Bitbucket から clone し、先ほど作成した GitBucket のリポジトリに push します。
具体的なコマンドは以下の通りです。

# Bitbucket からクローン
git clone --mirror {BitbucketのリポジトリURL}

# クローンしたリポジトリに移動
# ※ xxx は適切なディレクトリ名を入力してください。
cd xxx

# クローンしたリポジトリの push先変更 
git remote set-url --push origin {GitBucket のリポジトリURL}

# 念のため↑で変更した push先が変わっているか確認
# ※「remote.origin.pushurl」が変わっていればOK
git config -l

# GitBucket に push
# ※「 * [new branch]      master -> master」と出ればOK
git push --mirror

GitBucketのページにアクセスし、移行対象のリポジトリにファイルが作成されていれば作業完了です。

git push でエラーになる場合

git push を実行すると、私の環境だと以下のエラーになってしまいました。

error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
fatal: the remote end hung up unexpectedly

理由がわからず、Nginx のログを見ると、以下のエラーが出力されていました。

client intended to send too large chunked body: 10477731+8192 bytes, client: ・・・

ググると、どうやら、Nginx の POST最大サイズを超えてしまいエラーになっているようでした。

早速、nginx.conf の serverディレクティブに以下を追加し、再度、git push したところ正常終了しました。

client_max_body_size 100m;
100m としていますが、環境に合わせ適切なサイズを指定してください。

最後に

Bitbucket から移行したい人は参考にしてください。
また、git push でエラーが出る場合は、Nginx の POST最大サイズを確認してください。