2010-11-30 5 views
2

私はこの質問Detach subdirectory into separate Git repositoryの回答に従っていて、1つのブランチ上にある単純なサブディレクトリで成功しましたが、今は複数にまたがっているサブディレクトリに直面しています簡単に分岐するGitでサブディレクトリを切り離してすべてのブランチを保持する方法

git filter-branch --subdirectory-filter SUBDIRECTORY HEAD 

ジョブを実行しません。

各ブランチに切り替えてfilter-branchコマンドを実行する必要がありますか、または完全な履歴を通じて空白の変更を行うことができるものはありますか?

答えて

7

コマンドの最後のHEADは、処理する参照を指定しています。他のコマンドをいくつでも指定することができます。具体的には、すべてを指定する--all、ブランチを指定する場合は--branches、リモコンを指定する場合は--remotesなどがあります。これらのオプションの先頭に--をつけて、filter-branchにrev-list引数であることを伝える必要があるかもしれません。 --allはタグを明示的に処理しようとしますが、これはあなたが望むものではない可能性があります。代わりに--branches --remotesを使用して、非タグ参照をすべて指定することができます。 --tag-name-filter catを追加して、書き換えられたコミットを指すタグを書き換えることもできます。元のコマンドでは、それらのタグは変更されません。

+1

ありがとうございましたfilter-branchの出力に目を留めておく必要があることも分かりました。すべてのブランチとタグを書き換えられず、書き換えられないものは削除する必要があります。 – AGrunewald

関連する問題