So erstellen Sie eine Git-Zusammenführung mit pygit2

Lesezeit: 1 Minute

Ich versuche, den Zweig mit dem Master zusammenzuführen:

repo = pygit2.Repository("/path/to/repo/")
branch = repo.lookup_branch("upstream/branch", pygit2.GIT_BRANCH_REMOTE)
oid = branch.target
merge_result = repo.merge(oid)

Und merge_result enthält ff oid (wie in Dokumentation) und Repo hat sich nicht geändert.

Was soll ich als nächstes tun, um das Repository zu ändern?

Die Zusammenführungsfunktion führt die Zusammenführung durch (oder sagt Ihnen in diesem Fall, dass Sie sie überspringen könnten), aber es liegt an Ihnen (oder dem Benutzer des Tools), ob Sie den aktuellen Zweig an die neue Position verschieben möchten.

Dies ist dasselbe wie jedes andere Mal, wenn Sie eine Referenz ändern möchten. In diesem Fall möchten Sie zum aktuellen Zweig gelangen, was Sie über die Auflösung tun HEAD auf eine nicht-symbolische Referenz und das Festlegen ihres Ziels.

repo.lookup_reference('HEAD').resolve().target = merge_result.fastforward_oid

  • merge_result auch bekannt repo.merge(oid) gibt für mich einen NoneType zurück, und das bedeutet, dass ich nicht ziehen kann result.fastforward_oid. Wie kommt es, dass die Zusammenführung etwas für Sie zurückgibt? Ich kann es in den Dokumenten nicht sehen

    – GuySoft

    2. September 2014 um 13:06 Uhr


  • Es scheint, dass diese Antwort veraltet ist dieses Commit in den Dokumenten

    – GuySoft

    2. September 2014 um 13:19 Uhr

  • Diese Antwort deckt v0.20 ab, das damals veröffentlicht wurde. v0.21 hat einige Dummheiten behoben, indem die Zusammenführungsmethode immer eine Zusammenführung und Einführung durchführt merge_analysis damit Sie sehen können, wie die Beziehung zwischen den Commits ist.

    – Carlos Martín Nieto

    2. September 2014 um 14:43 Uhr

997900cookie-checkSo erstellen Sie eine Git-Zusammenführung mit pygit2

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy