2つのgitリポジトリrepo1
とrepo2
の間でいくつかのファイルを移動しようとしています。私は移動したいファイルの短いリストを持っています(履歴を保存します)。 repo1
から移動するgit filter-branchを使用しているファイルのリスト以外のすべての履歴を削除します。
3つのファイル:
libraryname/file1
libraryname/file2
tests/libraryname/file3
libraryname/
とtests/libraryname/
内の他のファイルがあります。 /
とtests/
内の他のフォルダがあります
私の計画は、それだけで私が興味のファイルの履歴が含まれてまで、履歴ツリーを変更する。そして、チェックアウトrepo2
を、repo1
をチェックアウトし、前回の出力にマージすることです操作。最初のステップではgit filter-branch
が適切なツールだと思われます。
これまでに試したことがありますgit filter-branch --index-filter 'git rm -r --cached <FILES>'
ここで、<FILES>
には不要なフォルダやファイルがすべてリストされています。
しかし、これは多くのフォルダがHEAD
に存在しなくなりましたが、このリポジトリの存続期間のある時点で存在していました。このレポの歴史に存在していたすべてを理解することは非常に面倒なようです。より良い方法が必要です。
これらの3つのファイルだけを含むgitコミットツリーで終わるのですか? 私はより良い方法がありますか? 現在、HEAD
に存在しないすべてのファイルの痕跡を削除する方法はありますか?