GIT, как ввести информацию о фиксации внутри файла, чтобы во время / после нажатия на удаленный?

Нам была поставлена ​​задача ввести информацию о коммите, такую ​​как коммиттер, дата коммита и имя автора, внутрь зафиксированного файла.

После некоторого поиска и этой темы Как я могу указать идентификатор фиксации Git в файле при фиксации? мы добились внедрения в файл с помощью расширения ключевых слов и заполнителей формата. Однако информация была введена либо после оформления заказа, либо после архивации.

Можно ли вставить информацию о фиксации в файл во время или после push, чтобы удаленный файл содержал эту информацию о фиксации? Мы понимаем, что это может показаться ненужной работой, но мы хотели бы знать о возможности выполнения этого требования.

1 ответ

Решение

Вы не можете этого сделать, потому что идентификатор фиксации на самом деле является хешем SHA-1, вычисленным из всего снимка репозитория (всех файлов), включая также файл, в который вы хотите записать этот идентификатор фиксации (который изменит файл и, следовательно, также идентификатор фиксации).

Кроме того, хранение любой информации о фиксации в файле является избыточным с тем, что gitуже есть и не имеет особого смысла. Было бы полезно, если бы вы немного объяснили в своем вопросе, почему вы хотите это сделать.

Если вы просто хотите, чтобы эта информация была видна где-то (например, чтобы закрепить определенный развертываемый артефакт в фиксации в исходном репозитории), вам действительно не нужно его фиксировать, а просто вызовите git и запросите текущие свойства фиксации HEAD и встроите их в бинарный артефакт.

Другие вопросы по тегам