Получить git SHA1-хэш набора изменений (или различий) в коммите - PullRequest
3 голосов
/ 22 мая 2011

Я в основном интегрирую готовые ветки тем в основную ветку разработки, в git. При этом мне иногда приходится изменять сообщение коммита (улучшение, исправление орфографии, ...), в результате чего получается новый коммит с новым идентификатором SHA1.

Я бы хотел получить SHA1 хеш из изменений в коммите . Это позволило бы нам проверить, изменяется ли какое-либо содержимое набора изменений после модификации сообщения фиксации.

Было бы замечательно, если бы мы могли получить хеш SHA1 набора изменений последовательности коммитов . Тогда мы сможем делать интерактивные перебазировки, когда мы фиксируем коммиты и все равно получаем тот же хэш SHA1 набора изменений.

Ответы [ 2 ]

2 голосов
/ 22 мая 2011

Когда git нужно узнать, был ли уже применен патч, например для git cherry он использует git-patch-id для создания хэша патча, введенного этим коммитом. Возможно, это подойдет тому, что вы хотите сделать? Или, возможно, git cherry уже делает то, что вы хотите? Документация для этих команд:

1 голос
/ 22 мая 2011

Вы можете получить SHA1-хэш дерева для определенных точек фиксации, используя

git show -s --pretty=format:%T master

где master - любая спецификация коммита.

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

...