Необходимо получить идентификатор SHA коммита последнего слияния в GitPython - PullRequest
1 голос
/ 26 марта 2020

Моя ветвь по умолчанию в git - это ветвь "разработка".

Я хочу получить идентификатор новой объединенной ветки в мою ветку "разработка". Возможно ли с git python?

в командной строке, я могу сделать

git log | grep Merge

, а затем выбрать последний. Есть ли способ сделать это с gitpython?

Спасибо.

1 Ответ

2 голосов
/ 26 марта 2020

Получив коммит HEAD для ветки (headcommit = repo.head.commit), вы можете:

  • проверить количество его родителей: len(headcommit.parents)
  • если один, выбирает единственного родителя : headcommit.parents[0]

Повторяйте, пока не найдете коммит с более чем одним родителем: это будет ваш коммит слияния.
Это будет эмулировать git log --merges -n 1.

ФП рекомендует:

headcommit = repo.head.commit 
while True: 
  headcommit = headcommit.parents[0] 
  if len(headcommit.parents) is not 1: break 
print (headcommit
...