對於提交的父母的順序是否存在一些約定?Git Commit父母的命令
因爲犯的父母中的一方應該是是一次提交關於當前分支正被合併到其餘的都是以前的其他合併分支的提交。
我想識別先前提交的當前分支的,我使用pygit
它返回一個承諾,直觀地我想,也許父母的命令具有重要意義,但我沒有發現任何明確的家長名單提到這一點。
我寫了這個實用功能,使用第一父承諾遍歷分支:
def walk_branch(pygit_repository, branch_oid):
"""
Walk a single branch
"""
from pygit2 import GIT_SORT_TOPOLOGICAL
previous_first_parent_oid = None
for commit in pygit_repository.walk(branch_oid, GIT_SORT_TOPOLOGICAL):
if previous_first_parent_oid is None or commit.oid == previous_first_parent_oid:
previous_first_parent_oid = commit.parents[0].oid if len(commit.parents) else None
yield commit
我不知道libgit2和pygit2但「第一」父母總是由你,當你做了'git的merge'的分支之一。這是'--first-parent'提取的一個,它是'git cat-file -p somerev'的原始輸出中的第一個。其餘的父母是「合併」的分支機構。 – torek
謝謝,我不知道「第一父母」這個詞。 –