Gitリポジトリの分割

今まで,configリポジトリにdotfileとかその他の設定ファイルをまとめて管理していた。しかし,configリポジトリが大きくなってきた。そこで,configリポジトリからdotfileを新しいリポジトリに移すことにした。以下の記事を参考に実施した。

参考:GitHub – gitの特定のディレクトリをブランチ毎別リポジトリにする方法 – Qiita http://qiita.com/wataru420/items/f1eb7cf37fe5ba4980c3

  1. まず新しく作るリポジトリ用のディレクトリを作る。
    mkdir -p ~/project/; cd ~/project
  2. 新しく作ったディレクトリに元のプロジェクトをcloneする。
    git clone git@github.com:lamsh/config dotfile
  3. 以下のコマンドで分離したいサブディレクトリの情報だけ抽出。
    git filter-branch --subdirectory-filter dotfile -- --all
  4. リモートリポジトリの情報を削除して新しいリモートリポジトリを登録・push(事前にGitHubでリポジトリを作成しておく)。
    git remote rm origin
    git remote add origin git@github.com:lamsh/dotfile
    git push --all

これでリポジトリの分離が完了。もともとあったconfig/dotfileはgit rm -r dotfileで削除してコミットすればOK。

なお,間違えてgit filter-branchを使ってしまった場合は以下のコマンドで戻せる。

git reset --hard .git/refs/original/refs/heads/master

Undo git filter-branch – Stack Overflow http://stackoverflow.com/questions/14542326/undo-git-filter-branch

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です