Mit $client->api('repo')->contents()->create(...) und $client->api('repo')->contents()->update(...) Ich kann einzelne Dateien in meinem Github-Repo ändern.
Jetzt kann ich möchte ein ganzes Verzeichnis (einschließlich Dateien und Unterverzeichnisse) in einem Commit in mein Repo hochladen. Ich habe die folgende Reihenfolge ausprobiert:
- Erstellen Sie einen Baum mit $client->api('gitData')->trees().< /li>
Den Baum mit $client->api('gitData')->commits() festschreiben. - Heads/main aktualisieren< /code> mit $client->api('gitData')->references().
Konkret möchte ich die folgenden zwei Dinge erreichen:
- Übertragen Sie eine Verzeichnisstruktur in ein (beliebiges) Github-Unterverzeichnis
behalten Sie die alten Dateien/Verzeichnisse in dieser Verzeichnisstruktur< /li>
Verwerfen der alten Dateien/Verzeichnisse nur in der betroffenen Verzeichnisstruktur (d. h. alle anderen Github-Verzeichnisse sollten beibehalten werden)
Dies ähnelt im Grunde dem Leeren von Ordnern und dem Einfügen von Inhalten in den lokalen Datei-Explorer oder dem Einfügen von Inhalten und dem Überschreiben vorhandener Dateien.
Vielleicht gibt es das bereits eine fertige Lösung bzw. PHP-Klasse dafür habe ich wäre für einen Hinweis sehr dankbar. Ansonsten würde es mir helfen, wenn jemand die richtige Vorgehensweise hierfür auflisten könnte:
- Muss ich bei jedem Commit (sogar bis) alle vorhandenen Bäume lesen und festschreiben? ein tieferes Github-Unterverzeichnis)? Eigentlich möchte ich, dass der Commit nicht alle vorhandenen Dateien berührt, sondern nur die neuen oder geänderten.
- Auf welchen Baum muss mein base_tree-SHA zeigen, wenn ich einen Commit auf meine/sub/ durchführen möchte dir?
John Nazarov