Ich möchte einen Commit auf einem Zweig (Master zum Beispiel) machen.Erstellen Sie ein Commit mit pygit2
Ich bilde einen Repository-Klon mit pygit2
(pygit2.clone_repository
)
Dann wechsle ich eine vorhandene Datei im Repository.
Danach laufe ich dies eine Festschreibung zu machen:
index = repository.index
index.add_all()
index.write()
author = pygit2.Signature(user_name, user_mail)
commiter = pygit2.Signature(user_name, user_mail)
tree = repository.TreeBuilder().write()
oid = repository.create_commit(reference, author, commiter, message,tree,[repository.head.get_object().hex])
Aber wenn ich in das Repository gehen und laufen git status
:
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: test.txt
Die modifizierte Datei für begehen, aber die hinzugefügt werden, scheint zu begehen war nicht erfolgreich. Mit der zurückgegebenen OID kann ich das commit-Attribut im pygit2-Repository finden.
Habe ich etwas übersehen?
Ich sehe nicht, dass Ihr Code irgendwo einen Zweig erwähnt, vielleicht sollten Sie das irgendwo angeben? –
Der Wert der Referenz lautet 'ref/heads/master' – user1479699
Ich habe Probleme, eine anständige Dokumentation für pygit2 zu finden, also rate ich nur: Ich sehe, dass Sie nach einigen Zustandsänderungen verschiedene 'write() 'Methoden aufrufen . 'Create_commit()' schreibt implizit oder vergisst du das? –