Добавить примечание для фиксации при фильтрации веток с помощью 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
Другие вопросы по тегам