LoginSignup
111
105

More than 3 years have passed since last update.

Gitリポジトリの中身を、ブランチとタグも含めて別リポジトリにコピーする

Last updated at Posted at 2017-01-23

Bitbucket にあるソースを丸ごと GitHub Enterprise に移行することになりました。「丸ごと」というのは、 main 以外の全ての branches と tags も含めての移行です。

しかし、普通に git clone -> git remote set-url -> git push するだけでは main しか移行できません。

少しコマンドが複雑だったので、手順をメモしておきます。

やりたいこと

  • Bitbucket にある Git リポジトリの中身を、 branches と tags も含めて GitHub Enterprise に移行する

コマンド

まずは移行元リポジトリの最新のソースを clone します。

git clone https://bitbucket.org/1000k/FOOBAR.git
cd FOOBAR/

この時点では main しかダウンロードできていません。

次のコマンドで、リモートの全ブランチを再帰的にダウンロードします。

git branch -r | grep -v "\->" | grep -v main | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

これでリポジトリの全コンテンツがダウンロードされました。

あとは移行先のリポジトリに push するだけです。

# Origin (リポジトリURL) を切り替える
git remote set-url origin https://github.com/1000k/FOOBAR.git

# すべてのブランチを push
git push --all origin
git push --tags

参考

111
105
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
111
105