いくつかのコードで正常に実行git filter-branch
して、たとえば別のリポジトリをサブディレクトリ[1]にマージできます。
git filter-branch --index-filter '
git ls-files -s |
perl -pe "s{\t\"?}{$&helper/}" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info &&
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE
' remotes/helper/master
ただし、各コミットのメッセージを拡張して、以前のID(SHAハッシュ)を含めることもできます。これらのコミットには、転送されないGitHubに関するコメント/会話が含まれている可能性があるためです。
たとえば、次のような行を追加します(bob/helpers
ハードコードされている/事前にわかっている場合):
[COPIED FROM bob/helpers@76c7c080b3bd2f93dc78e4864899d668a57cd9f9]
私の知る限り、Gitmsg-filter
は元のメッセージのみを提供し、Gitenv-filter
には入力変数としてコミットID(SHAが持つ)が含まれていません。それではこれは可能ですか、それとも不可能ですか?
ありがとう!
[1]このすばらしい記事を介して、この電子メールスレッドからのPerlフィルターを使用して、MacOSXのバグを回避します。