Указание, является ли Git commit вернутым коммитом
Я хотел бы создать скрипт, который извлекает простую статистику из моего хранилища. Я хотел бы исключить коммиты слияния и отменить коммиты из этой статистики.
8 лет назад был задан вопрос о различении между регулярным коммитом и коммитом слияния:
Указание, является ли коммит Git коммитом Merge/Revert
Ответ велик, когда дело доходит до коммита слияния (т. Е. Коммита, который имеет более одного родителя), но не существует удовлетворительного ответа для определения, является ли коммит возвратным коммитом.
Я смотрю на пакет GitPython и не могу найти в их документации ничего, что могло бы помочь.
Любая помощь будет принята с благодарностью.
В качестве альтернативы, если что-то уже есть (скрипт / библиотека / продукт), которое помогает с статистикой git (и исключает коммиты слияния и отмены коммитов), я бы также принял такой ответ.
2 ответа
"Вернуть коммит" не является особой сущностью в git. Это функция cli, предназначенная для упрощения отката предыдущего коммита (ов) без перезаписи истории.
Это просто обычный коммит с обращенным различием коммитов, которые нужно вернуть. Нет возможности автоматически идентифицировать такой возвратный коммит.
Как уже отмечалось в ответе herk2mgl, возвратный коммит - это просто обычный коммит.
Тем не менее, если вы стандартизируете свои сообщения об отмене фиксации, вы сможете распознать возвратные фиксации, проверив сообщение на предмет вашего конкретного возврата.
Для этого подхода необходимо убедиться, что все, кто работает в вашем репозитории, используют это типичное сообщение только для обратных коммитов, а не для "общих" коммитов.