Ich habe bisher folgende Schritte unternommen:
- Ein entferntes Git-Repo geklont
- Verzweigte den Hauptzweig zu einem Experiment
- bearbeiteter / getesteter / festgeschriebener Code im experimentellen Zweig
Jetzt bin ich nicht bereit, Experimentelles mit Master zu verschmelzen. Ich möchte es jedoch auf das Remote-Repo zurückschieben, da dies das Repository ist, das ich mit einigen Kollegen teile. Ich möchte, dass sie sehen, was ich im experimentellen Bereich getan habe. Normalerweise greife ich nur über SSH auf das Remote-Repo zu.
Wie teile ich meinen lokalen Zweig auf dem Remote-Repo, ohne den Hauptzweig des Remote-Repos zu beeinflussen?
git
version-control
distributed
Coocoo4Cocoa
quelle
quelle
Antworten:
Laut git push Handbuchseite :
Suchen Sie eine Referenz, die
experimental
im Quell-Repository übereinstimmt (höchstwahrscheinlich würde sie gefunden werdenrefs/heads/experimental
), und aktualisieren Sie dieselbe Referenz (z. B.refs/heads/experimental
) im Ursprungs-Repository damit.Wenn
experimental
es nicht remote vorhanden wäre, würde es erstellt .Dies ist das gleiche wie:
Erstellen Sie den Zweig
experimental
im Ursprungsrepository, indem Sie den aktuellenexperimental
Zweig kopieren .Dieses Formular wird nur benötigt, um einen neuen Zweig oder ein neues Tag im Remote-Repository zu erstellen, wenn der lokale Name und der Remote-Name unterschiedlich sind . Andernfalls funktioniert der Referenzname allein.
Oder, wie im Git-Tipp erwähnt , können Sie eine "Branch's Default Remote" einrichten:
Jan schlägt (für git> = 1.7.0 ) die Option
push -u
(oderpush --set-upstream
) vor:Auf diese Weise müssen Sie keine Git-Konfiguration vornehmen.
quelle
-u
Option verwenden, umpush
sicherzustellen, dass Ihre lokale Zweigstelle die entfernte Zweigstelle nach der Veröffentlichung verfolgt. Wenn Sie vergessen haben, die-u
Option zu verwenden, können Sie anschließend einfachgit push -u
in den Zweig eingeben, danngit pull
funktioniert es.git push origin experimental
keine Hinweise darauf gibt, dass Pakete hochgeladen wurden. Es sieht so aus, als ob die Fernbedienung bereits das gesamte Material von Ihrem früheren Push enthält. Es muss nur an die Schiedsrichter angeschlossen werden .git push origin experimental
würde nur der Zweigexperimental
auf der Fernbedienung erstellt.Wenn der Name Ihres Zweigs
experimental
und der Name der Fernbedienung lautetorigin
, ist dies der Fallquelle
git push -u <remote-name> <branch-name>
funktioniert nicht, wenn der neu erstellte Zweig nicht aus demselben Repo stammt, dh wenn Sie den neuen Zweig nicht mit erstellt habengit checkout -b new_branch
, funktioniert dies nicht.Zum Beispiel hatte ich zwei verschiedene Repositorys lokal geklont und musste repo2 / branch1 nach repo1 / kopieren und dann auch pushen.
Dieser Link hat mir geholfen, meinen lokalen Zweig (von einem anderen Repo geklont) auf mein Remote-Repo zu übertragen:
quelle
Hier ist die maßgebliche Github-Seite für die Github-Remoteverwaltung http://github.com/guides/push-a-branch-to-github . Es wird Ihnen helfen, alle Ihre Fragen zu beantworten.
quelle
tl; dr
Mehr Info
nachdem Sie einige Zusagen in Ihre gemacht haben:
Sie schieben Ihren Zweig, der einen Upstream angibt, wie folgt in eines der Fernbedienungs-Repositorys:
Fernbedienungen können von gesehen werden
Normalerweise haben Sie eine einzige Standardfernbedienung
origin
. Ihr Befehl würde also so aussehen:und alle nachfolgenden Stöße können nur mit gemacht werden
git push
.quelle