2013-09-02 19 views
6

Ich möchte den Zweig gh-pages von der Github API erstellen. Gibt es einen einfachen Weg, dies zu tun?Wie erstelle ich einen verwaisten Zweig von der Github API?

Wenn nicht, wie würde ich einen verwaisten Zweig von der Github API erstellen?

+1

Ein Zweig ohne Geschichte. Das gleiche wie wenn Sie 'git checkout --orphan gh-pages' in der Befehlszeile eingeben. –

Antwort

1

Sie können eine Verzweigung über den Create a Reference-Teil der API erstellen. Ich bin mir jedoch nicht sicher, ob Sie damit einen verwaisten Zweig erstellen können oder ob die API dies verhindern würde.

In der Tat, es testet mit Locke aus funktioniert nicht:

curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned"}' 
curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned", "sha":""}' 

Beide Rückkehr:

{"message": "Reference update failed"} 

Ich habe versucht, mit und ohne Content-Type Header (-H "Content-Type: application/json"), aber weder Arbeit.

Von diesem kleinen Experiment scheint es, dass Sie keinen verwaisten Zweig über die API erstellen können.

+1

Ich konnte eine Referenz mit einem sha erstellen, die auf eine Commit auf Root-Ebene hinweist (ein neues Commit, das ich ohne Eltern erstellt habe). Beim Erstellen dieses Commits konnte ich keine leere Baumreferenz über die github api erstellen, sondern musste stattdessen einen Baum mit einer Dummy-Datei erstellen. Ich verwende derzeit diese Problemumgehungen, bin aber immer noch daran interessiert, zu sehen, ob es einen Weg gibt, einen verwaisten Zweig zu erstellen, der auf einen Root-Level-Commit verweist, der auf einen leeren Baum zeigt. –

1

Es ist möglich, dies zu tun durch:

  1. prüfen, ob bereits die Niederlassung
  2. Wenn nicht vorhanden ist, dann ein Commit schaffen, das zu empty tree SHA
  3. git bezeichnet einen ref Dann erstellen, um die
  4. zu begehen

können Sie einige Coffeescript Beispielcode für finden, wie Sie das von https://github.com/noflo/noflo-github/blob/master/components/CreateOrphanBranch.coffee#L31

Hier

ist ein solcher Zweig auf diese Weise erstellt: https://github.com/the-domains/example.net/tree/branch_1403616324001

aktualisieren: Diese Methode funktioniert nur, wenn das Git Repository vorherige verwaiste Zweige hat. Wenn es sich um ein neu erstelltes Repo handelt, das über die GitHub-API mit der Option auto_init erstellt wurde, funktioniert es nicht. Ich habe mit GitHub darüber gesprochen.

Verwandte Themen