Mogę z powodzeniem uruchomić git filter-branch
na jakimś kodzie do np. scalić inny repo do podkatalogu [1]:Git filter-branch: czy można zaktualizować komunikaty commit, aby odwoływać się do starych identyfikatorów commitów?
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
Ale teraz, ja też uwielbiam rozszerzyć wiadomość każdy popełnić w celu uwzględnienia jej byłego ID (SHA hash), ponieważ te commity mogły mieć komentarze/rozmowy na GitHub, które nie zostaną przeniesione.
E.g. dodać dodatkowy wiersz tak (gdzie bob/helpers
jest sztywno/znany z góry):
[COPIED FROM bob/[email protected]]
O ile mogę powiedzieć, Git na msg-filter
tylko daje mi oryginalną wiadomość i Git na env-filter
nie zawiera identyfikatora popełniania (SHA ma) jako zmienna wejściowa. Czy to jest możliwe, czy nie?
Dzięki!
[1] Via this great article, z Perl filtrować z this email thread obejść błąd w systemie Mac OS X.
Działa fantastycznie dobrze! Nie wiedziałem, że istnieje zmienna środowiskowa. Dzięki! –