Может ли крюк с предварительным обменом GIT добавить файл в репо?

StackOverflow https://stackoverflow.com/questions/4835035

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top