Ответ 1
Мне пришлось прокручивать источник для git-filter-branch
, чтобы работать с этим. Он не задокументирован (насколько я могу судить), но старый идентификатор фиксации явно экспортируется как $GIT_COMMIT
. Это сработало для меня:
$ git filter-branch --your-filters-here --commit-filter 'echo -n "${GIT_COMMIT}," >>/tmp/log; git commit-tree "[email protected]" | tee -a /tmp/log' your-branch-here
[...]
$ cat /tmp/log
70d609ba7bc58bb196a2351ba26afc5db0964ca6,d9071b49743701c7be971f76ddc84e76554516c7
0d1146dcabc00c45fb9be7fe923c955f7b6deb50,cb6813f9aca5e5f26fcc85007c5bb71552b91017
[...]
(Этот файл, конечно, имеет формат <original commit hash>,<new commit hash>
.)
Мне любопытно, что ваши намерения связаны с этим. Это не похоже на информацию, которую вам обычно нужно знать, если вы используете фильтр-ветвь "правильным" способом (т.е. Не манипулируете существующей опубликованной историей).