Может ли крюк с предварительным обменом GIT добавить файл в репо?
-
27-10-2019 - |
Вопрос
Я держу текстовый файл моего журнала GIT в моем рабочем каталоге, и у меня есть скрипт, который обновляет его после коммита. Это нормально, но эффект этого заключается в том, что версия, которая находится внутри репо, всегда является одним из коммита.
Можно ли написать крюк перед набором, который бы вызвал скрипт и добавил файл в репо, что действительно сохранила текстовую версию журнала с текущей информацией о коммите внутри него?
Я новичок в Git Hooks и понятия не имею, как это будет работать, если это даже возможно. Я ценю помощь!
Решение
Короткий ответ: нет. Журнал содержит SHA1 коммита, который зависит от содержимого коммита. Если вы измените журнал, вы измените коммит, и он все равно будет недействительным.
Интересно, почему вы пытаетесь это сделать, правда. Внутри репозитория, git log
так же хорошо, как cat saved-git-log
. Анкет Если вы хотите, чтобы это как изменение, для выпущенных версий, просто создайте его как часть процесса сборки/развертывания, например, что -то вроде этого:
tarname=my-project-$(git describe HEAD).tar
git log > changelog.txt
git archive --format=tar HEAD > $tarname
tar -Af $tarname changelot.txt
gzip $tarname
Другие советы
Я просто вытаскиваю полные журналы из RSS -подачи на BitBucket/GitHub. Кажется, это был бы самый простой способ достичь того, что вы спрашиваете, особенно при использовании Heroku.