LoginSignup
3
3

More than 3 years have passed since last update.

Gitリポジトリ内にあるディレクトリを別リポジトリに移行する

Last updated at Posted at 2019-01-31

どういうことか

AAAAAの下にフォルダがあるが、それぞれのフォルダは別のプログラムを保持していて1つにまとめておく必要が一切ないので分割します。

これを

AAAAA
 BBBBB
 CCCCC
  aaa
  bbb
  ccc
 DDDDD
 EEEEE

こうなるようにします。
新しいリポジトリを作り、ログもそのまま持っていきます。

CCCCC
 aaa
 bbb
 ccc

やったこと

  • 作業ブランチを作る
 git checkout -b filter
  • コマンドでCCCCC以外をフィルタ
 git filter-branch -f --subdirectory-filter CCCCC/ -- --all
コマンド結果
AAAAA
 CCCCC
  aaa
  bbb
  ccc
  • CCCCC以下のファイルを移動
 git filter-branch -f --tree-filter "git mv -k CCCCC/* ."
コマンド結果
CCCCC
 aaa
 bbb
 ccc
  • 移行対象のリモートに追加してプル
git remote add work file:///tmp/AAAAA
git pull work filter
  • 移行対象のリモートにプッシュ
git push origin master

参考(そのまま)

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