LoginSignup
4
4

More than 5 years have passed since last update.

git リポジトリ移行 管理構成変更など 

Last updated at Posted at 2016-09-27

gitリポジトリ管理ツールはたくさんあります。管理ツールを切り替える際に必要となりそうな移行作業をまとめてみました。

1.そのまま移行する場合

git clone --mirror [移行元リポジトリurl]
cd [リポジトリ]
git push --mirror [移行先リポジトリurl]

こちらを参考にさせていただきました。
http://qiita.com/tanacasino/items/901723e3463bac38f40e

2.コミットログを書き換えてから移行する場合

例えば、使用したメールアドレス、ユーザ名等を書き換える必要がある場合。
以下では全ブランチに対してユーザtestがコミットしたログのメールアドレスを一律でtest@com更新します。これをやると新しいコミットに作り直されるのでtagもあわせて更新しています。

git clone --mirror [移行元リポジトリurl]
cd [リポジトリ]

git filter-branch --tag-name-filter cat --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "test@com" ];
            then
                GIT_AUTHOR_NAME="test";

git push --mirror [移行先リポジトリurl]

3.リポジトリの切り方を変えてから移行したい

例:
【移行前の管理構成】
CreateMenuAppという1つのリポジトリで管理。

CreateMenuApp(リポジトリ)
 |-CreateMenuFrontEnd    ---------> サブフォルダ
 |-CreateMenuMail        ---------> サブフォルダ
 |-CreateMenuServerSide  ---------> サブフォルダ

【移行後】
CreatemenuAppリポジトリ配下のサブフォルダが大きくなってきたので、リポジトリとして切り出したい。
以下のように3つのリポジトリで管理したいとする。

CreateMenuApp(プロジェクト)
 |-CreateMenuFrontEnd    ---------> リポジトリ
 |-CreateMenuMail        ---------> リポジトリ
 |-CreateMenuServerSide  ---------> リポジトリ

以下コマンドで対応
filter-branchは、--allがないとmasterブランチのみしか置き換わらなかったので追記(2016/10/13)

# CreateMenuFrontEndをリポジトリとして切り出す
git clone --mirror [移行元リポジトリurl] CreateMenuFrontEnd
cd CreateMenuFrontEnd
git filter-branch --subdirectory-filter CreateMenuFrontEnd HEAD --all
git push --mirror [移行先リポジトリurl]

残りのリポジトリ管理させたいサブディレクトリについても同様の処理を行うと完了です。

以下記事を参考にさせていただきました。
http://qiita.com/uasi/items/77d41698630fef012f82

4
4
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
4
4