9

コミットの親の順序に関する規則はありますか?

コミットの親の 1 つは、マージされている現在のブランチの以前のコミットにする必要があり、残りは他のマージブランチの以前のコミットであるためです。

現在のブランチの以前のコミットを特定したいと思います。コミットの親のリストを返すを使用して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
4

4 に答える 4

12

はい、A を B にマージする場合、最初の親は B で、2 番目の親は A です。

gitk --first-parentしたがって、マージされたブランチの詳細を表示せずに、現在のブランチのみの履歴を表示するなどのことができます。

于 2013-08-18T17:04:34.083 に答える