{"meta":{"title":"Verwende die REST-API, um mit deiner Git-Datenbank zu interagieren.","intro":"Verwende die REST-API, um unformatierte Git-Objekte in deiner Git-Datenbank auf GitHub zu lesen, zu schreiben und deine Verweise (Branchheads und Tags) aufzulisten und zu aktualisieren.","product":"REST-API","breadcrumbs":[{"href":"/de/rest","title":"REST-API"},{"href":"/de/rest/guides","title":"Anleitungen"},{"href":"/de/rest/guides/using-the-rest-api-to-interact-with-your-git-database","title":"Erste Schritte: Git-Datenbank"}],"documentType":"article"},"body":"# Verwende die REST-API, um mit deiner Git-Datenbank zu interagieren.\n\nVerwende die REST-API, um unformatierte Git-Objekte in deiner Git-Datenbank auf GitHub zu lesen, zu schreiben und deine Verweise (Branchheads und Tags) aufzulisten und zu aktualisieren.\n\n## Übersicht\n\nDies ermöglicht es dir, viele Git-Funktionen mithilfe der REST-API neu zu implementieren. Indem du rohe Objekte direkt in der Datenbank erstellst und Branchreferenzen aktualisierst, kannst du theoretisch sämtliche Git-Funktionen nutzen, ohne Git installiert zu haben.\n\nDie REST-API gibt einen `409 Conflict` zurück, wenn das Git-Repository leer oder nicht verfügbar ist. Ein nicht verfügbares Repository bedeutet in der Regel, dass das Repository gerade von GitHub erstellt wird. Bei einem leeren Repository kannst du den Endpunkt [`PUT /repos/{owner}/{repo}/contents/{path}`](/de/rest/repos/contents#create-or-update-file-contents) REST API verwenden, um Inhalte zu erstellen und das Repository zu initialisieren, damit du die API zum Verwalten der Git-Datenbank verwenden kannst. Wende dich an uns über das [GitHub Supportportal](https://support.github.com), wenn dieser Antwortstatus weiterhin auftritt.\n\nWeitere Informationen zur Git-Objektdatenbank findest du im Kapitel [Git Internals](https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain) des Pro Git-Buchs.\n\nWenn du beispielsweise eine Änderung an einer Datei in deinem Repository committen möchtest, gehe wie folgt vor:\n\n* Rufe das aktuelle Commitobjekt ab.\n* Rufe die aufgewiesene Struktur ab.\n* Rufe den Inhalt des Blobobjekts ab, über das die Struktur für diesen bestimmten Dateipfad verfügt.\n* Ändere den Inhalt, stelle ein neues Blobobjekt mit diesem neuen Inhalt bereit, und erhalte einen Blob-SHA-Wert zurück.\n* Stelle ein neues Strukturobjekt bereit, bei dem dieser Dateipfadzeiger durch deinen neuen Blob-SHA-Wert ersetzt ist, und erhalte einen Struktur-SHA-Wert zurück.\n* Erstelle ein neues Commitobjekt mit dem aktuellen Commit-SHA-Wert als übergeordnetes Element und des neuen Struktur-SHA-Werts, und erhalte einen Commit-SHA-Wert zurück.\n* Aktualisiere den Verweis deines Branch auf den neuen Commit-SHA-Wert.\n\nDer Vorgang mag komplex erscheinen, ist jedoch recht einfach, wenn du das Modell verstehst. Außerdem eröffnet er dir eine Vielzahl an Möglichkeiten, wie du die API nutzen kannst.\n\n## Überprüfen der Zusammenführbarkeit von Pull Requests\n\n> \\[!WARNING]\n> Vertraue nicht darauf, Git direkt oder [`GET /repos/{owner}/{repo}/git/refs/{ref}`](/de/rest/git/refs#get-a-reference) für Updates für `merge`-Git-Referenzen zu verwenden, da diese Inhalte ohne Vorankündigung veralten.\n\nEine Nutzer-API muss explizit einen Pull Request anfordern, um einen *Test*-Merge-Commit zu erstellen. Ein *Test*-Mergecommit wird erstellt, wenn du den Pull Request auf der Benutzeroberfläche anzeigst und die Schaltfläche „Zusammenführen“ angezeigt wird, oder wenn du mithilfe der REST-API ein Pull Request [abrufst](/de/rest/pulls/pulls#get-a-pull-request), [erstellst](/de/rest/pulls/pulls#create-a-pull-request) oder [bearbeitest](/de/rest/pulls#update-a-pull-request). Ohne diese Anforderung veralten die `merge`-Git-Referenzen, bis jemand das nächste Mal den Pull Request anzeigt.\n\nWenn Sie derzeit Abfragemethoden verwenden, die veraltete `merge` Git-Refs erzeugen, empfiehlt GitHub die Verwendung der folgenden Schritte, um die neuesten Änderungen aus der Standardverzweigung abzurufen:\n\n1. Empfange den Pull-Request-Webhook.\n2. Rufe [`GET /repos/{owner}/{repo}/pulls/{pull_number}`](/de/rest/pulls/pulls#get-a-pull-request) auf, um einen Job im Hintergrund zu starten, der den Kandidaten für die Zusammenführung erstellt.\n3. Rufe dein Repository mit [`GET /repos/{owner}/{repo}/pulls/{pull_number}`](/de/rest/pulls/pulls#get-a-pull-request) ab, um festzustellen, ob das `mergeable`-Attribut `true` oder `false` ist. Erst nachdem du die vorherigen Schritte ausgeführt hast, kannst du Git direkt oder [`GET /repos/{owner}/{repo}/git/refs/{ref}`](/de/rest/git/refs#get-a-reference) für Updates für `merge`-Git-Referenzen verwenden."}