Gitリポジトリの分割
今まで,configリポジトリにdotfileとかその他の設定ファイルをまとめて管理していた。しかし,configリポジトリが大きくなってきた。そこで,configリポジトリからdotfileを新しいリポジトリに移すことにした。以下の記事を参考に実施した。
参考:GitHub – gitの特定のディレクトリをブランチ毎別リポジトリにする方法 – Qiita http://qiita.com/wataru420/items/f1eb7cf37fe5ba4980c3
- まず新しく作るリポジトリ用のディレクトリを作る。
mkdir -p ~/project/; cd ~/project
- 新しく作ったディレクトリに元のプロジェクトをcloneする。
git clone git@github.com:lamsh/config dotfile
- 以下のコマンドで分離したいサブディレクトリの情報だけ抽出。
git filter-branch --subdirectory-filter dotfile -- --all
- リモートリポジトリの情報を削除して新しいリモートリポジトリを登録・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