Добавить примечание для фиксации при фильтрации веток с помощью Git
Следующая команда - сохранить историю фиксации и списки файлов, но удалить содержимое файла, чтобы минимизировать дисковое пространство и потребление сетевого трафика, когда необходимо узнать историю огромного репо без извлечения больших объектов. Это позволяет сэкономить много времени.
git filter-branch -f -d `mktemp -d` \
--tree-filter '
find . -type f -not -path ./.git\* |
while read file; do > "$file"; done
' \
--msg-filter '
cat - && echo && echo "commit $GIT_COMMIT"
' \
-- metainfo/$BRANCH
Мне также нужно знать хэш исходного коммита. Он добавляется для фиксации сообщения, как вы можете видеть в --msg-filter
часть.
Я хотел бы хранить хэш исходного коммита в git notes.
Является ли это возможным? Как?
1 ответ
Решение
Простое решение: не изменяйте сообщение коммита, а создайте файл.
git filter-branch -f -d `mktemp -d` \
--tree-filter '
find . -type f -not -path ./\*/.git\* |
while read file; do > "$file"; done
echo "$GIT_COMMIT" >.GIT_COMMIT
' \
-- metainfo/$BRANCH