1

次のように、gitサブツリーを使用して、Javaプロジェクトの特定のパッケージを別のリポジトリに分割します(履歴を保持します)

$ git subtree split -P src/main/java/com/company/package -b moved_package_branch

次に、このブランチに切り替えると、パッケージのすべてのコンテンツが元の場所 (src/main/java/com/company/package) ではなく、プロジェクトのルートに移動されていることがわかります。

それを修正する方法について何か考えはありますか?

4

1 に答える 1

1

次のように、サブツリー以外の別の git コマンドを使用しました

$ git checkout -b moved_package_branch
$ git filter-branch --index-filter 'git rm --cached -qr -- . && git reset -q $GIT_COMMIT -- src/main/java/com/company/package' --prune-empty

複数のフォルダーを含めることができることに注意してください (スペース区切り)

参照: @David Smiley からの最後の回答

多くのサブディレクトリを新しい別の Git リポジトリにデタッチする

于 2013-11-03T00:17:01.677 に答える