git commit-tree
内部コマンドを使用して手動で行うことができます。
1.02-6
タグ付けされたコミットを編集して、偽の親ポインター (へ) を削除したいと考えています56a2f3b5948ab54c9239c2b384a6ea9eb1f410c4
。
まず、既存のコミット オブジェクトから情報を読み取ります。
user@host:/path/repo.git$ git cat-file -p 1.02-6
tree c658aa1ebcf2bf2a607696c7868b875be72fb01f
parent 56a2f3b5948ab54c9239c2b384a6ea9eb1f410c4
parent 4e671bf1d2298729c9e5cfd8229051cfe2c40831
author James Damour (Suvarov454) <suvarov454@users.sourceforge.net> 1146319620 -0400
committer Bazaar Package Importer <james.westby@ubuntu.com> 1146319620 -0400
The "main/" in the Section line of debian/control should be assumed.
を使用してコミット メッセージを抽出しますgit log --format=%B -n 1 1.02-6
。
同じ内容で新しいコミットを作成します (偽の親リンクとコミッター情報を除く):
git log --format=%B -n 1 1.02-6 | \
GIT_AUTHOR_NAME="James Damour (Suvarov454)" \
GIT_AUTHOR_EMAIL="suvarov454@users.sourceforge.net" \
GIT_AUTHOR_DATE="1146319620 -0400" \
git commit-tree c658aa1ebcf2bf2a607696c7868b875be72fb01f \
-p 4e671bf1d2298729c9e5cfd8229051cfe2c40831
これにより、新しいコミットが作成され、そのハッシュ ( cc32e66
...) が出力されました。それを新しいブランチに変えます:
git checkout -b fixed_commit cc32e66
master
新しいブランチにリベースします。
git checkout master
git rebase fixed_commit
これで完了です。

古いブランチを削除し、適切なコミットにタグを付け直すことをお勧めします。
むしろ使いやすいかもgit filter-branch --parent-filter
。私はそれを試していません。