Lokkaのpluginを別リポジトリにするためにgit filter-branch --subdirectory-filterを使ってみました。

Pro Git - Pro Git 6.4 Git のさまざまなツール 歴史の書き換え

最強のオプション: filter-branch

歴史を書き換える方法がもうひとつあります。これは、大量のコミットの書き換えを機械的に行いたい場合 (メールアドレスを一括変更したりすべてのコミットからあるファイルを削除したりなど) に使うものです。そのためのコマンドが filter-branch です。

% git clone git@github.com:komagata/lokka.git
% cd lokka
% git filter-branch -f --subdirectory-filter public/plugin/lokka-hoptoad HEAD
Rewrite cedd2bc6856876f6a51cfbf2cf70f3ceb2b835a9 (1/1)
Ref 'refs/heads/master' was rewritten
% git st
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 247 different commit(s) each, respectively.
#
nothing to commit (working directory clean)
% git log
commit 34ad15f4435ccc563f48778419fe2d48d7c58161
Author: Masaki KOMAGATA <komagata@gmail.com>
Date: Thu Dec 2 17:26:34 2010 +0900

added hoptoad plugin.
% ls
Gemfile lib views

「やだ、なにこれ・・・」

スゲー変わってる。filter-branch系は歴史を遡って書き換えちゃう系なので新たにcloneしといた方がホント安全っぽいですね。

後はgithubに新たに作ったlokka-hoptoadリポジトリにpushして完了。便利ですね!

Comments


Option