Pygit2 - объединение ветки без быстрой перемотки вперед

По сути, я пытаюсь сделать "ветку git merge --no-ff", чтобы объединить мою ветку обратно. Глядя на документацию Pygit2, я не совсем уверен, каков правильный способ сделать это. Прямой мыслью было бы сделать что-то вроде этого:

repo.merge(branch.target)

Однако я не вижу никаких вариантов слияния с no-fastforward. Кто-нибудь широко использовал pygit2, который может дать мне какое-либо понимание? Вся помощь очень ценится.

1 ответ

Однако я не вижу никаких вариантов слияния с no-fastforward.

Это потому, что из документации по слиянию pygit2:

он только выполняет слияние, не фиксирует и не обновляет ссылку на ветвь в случае быстрого перехода.

Это означает, что вы можете принять решение о создании нового коммита после завершения самого слияния.

Теперь вы можете проверить файл индекса на наличие конфликтов и вернуться к пользователю для разрешения, если таковые имеются.
Как только не осталось конфликтов, вы можете создать коммит с этими двумя родителями.

other_branch_tip = '5ebeeebb320790caf276b9fc8b24546d63316533'
repo.merge(other_branch_tip)

user = repo.default_signature()
tree = repo.index.write_tree()
new_commit = repo.create_commit('HEAD', user, user, tree,
                                [repo.head.target, other_branch_tip])
Другие вопросы по тегам