Ich habe eine lokale Niederlassung erstellt, die ich stromaufwärts "pushen" möchte. Bei Stack Overflow gibt es eine ähnliche Frage zum Verfolgen eines neu erstellten Remote-Zweigs.
Mein Workflow ist jedoch etwas anders. Zuerst möchte ich eine lokale Niederlassung erstellen und diese erst dann nach oben verschieben, wenn ich zufrieden bin und meine Niederlassung freigeben möchte.
- Wie würde ich das machen? (Meine Google-Suche schien nichts zu bringen).
- Wie würde ich meinen Kollegen sagen, dass sie es aus dem Upstream-Repository abrufen sollen?
UPDATE Mit Git 2.0 gibt es eine einfachere Antwort, die ich unten geschrieben habe: https://stackoverflow.com/a/27185855/109305
git
branch
git-branch
Jesper Rønn-Jensen
quelle
quelle
get fetch --all
die neuen Zweige auf der Remote-Seite ab (aber nur aget fetch --prune
löscht lokal die Verweise auf die gelöschten Remote-Zweige). Ich denke, entweder sollte dies automatisch von ihnen eingerichtet werden, oder Sie müssen mündlich mit ihnen sprechen.Antworten:
Zunächst erstellen Sie Ihre Niederlassung lokal:
Der Remote-Zweig wird automatisch erstellt, wenn Sie ihn auf den Remote-Server übertragen. Wenn Sie sich dazu bereit fühlen, können Sie einfach Folgendes tun:
Wo
<remote-name>
ist normalerweiseorigin
der Name, den Git der Fernbedienung gibt, von der Sie geklont haben. Ihre Kollegen würden dann einfach diesen Zweig ziehen und er wird automatisch lokal erstellt.Beachten Sie jedoch, dass das Format formal wie folgt lautet:
Wenn Sie jedoch einen weglassen, wird davon ausgegangen, dass beide Zweignamen gleich sind. Nachdem dies gesagt ist, als ein Wort der Vorsicht , nicht über die kritischen Fehler machen nur die Angabe
:<remote-branch-name>
(mit dem Doppelpunkt), oder der Remote - Zweig wird gelöscht!Damit ein nachfolgender
git pull
Benutzer weiß, was zu tun ist, möchten Sie möglicherweise stattdessen Folgendes verwenden:Wie unten beschrieben,
--set-upstream
richtet die Option einen Upstream-Zweig ein:quelle
git push <remote>
der Zweig nicht gepusht wird, wenn er nicht vorhanden ist<remote>
.git push -u <remote-name> <branch-name>
stattdessen verwenden, damit ein nachfolgendergit pull
Benutzer weiß, was zu tun ist.origin
"den Server verwenden , von dem ich den Rest dieses Repos erhalten habe": alsogit push origin <branch-name>
.-u
Option zu verwenden, können Sie anschließend einfachgit push -u
in den Zweig eingeben, danngit pull
funktioniert es.git push -u origin <local-branch-name>
hat für mich funktioniert.Zunächst müssen Sie Ihren Zweig lokal erstellen
Danach können Sie lokal in Ihrer Filiale arbeiten. Wenn Sie bereit sind, die Filiale freizugeben, drücken Sie sie. Mit dem nächsten Befehl wird der Zweig zum Ursprung des Remote-Repositorys verschoben und verfolgt
Teamkollegen können Ihre Niederlassung erreichen, indem Sie Folgendes tun:
Sie können in der Verzweigung weiterarbeiten und pushen, wann immer Sie möchten, ohne Argumente an git push zu übergeben (argumentless git push pusht den Master an den Remote-Master, your_branch local an remote your_branch usw.)
Teamkollegen können durch Commits in Ihre Filiale pushen und dann explizit pushen
Oder verfolgen Sie den Zweig, um die Argumente für Git Push zu vermeiden
quelle
Einfache Git 2.0+ Lösung:
Ab Git 2.0 ist das Verhalten einfacher geworden :
Sie können git mit konfigurieren
push.default = current
, um das Leben einfacher zu machen:Ich habe dies hinzugefügt, damit ich jetzt einfach einen neuen Zweig mit nach oben schieben kann
-u
verfolgt den gleichnamigen Remote-Zweig. Mit dieser Konfiguration erraten Sie nun automatisch die Remote-Referenz für Git Push. Aus der Dokumentation zu git.config :Für mich ist dies eine gute Vereinfachung meines täglichen Git-Workflows. Die Konfigurationseinstellung berücksichtigt den "üblichen" Anwendungsfall, in dem Sie einen Zweig lokal hinzufügen und ihn remote erstellen möchten. Außerdem kann ich genauso einfach lokale Zweige aus Fernbedienungen erstellen, indem ich dies einfach mache
git co remote_branch_name
(im Gegensatz zur Verwendung von--set-upstream-to
Flag).Ich weiß, dass diese Frage und die akzeptierten Antworten ziemlich alt sind, aber das Verhalten hat sich geändert, sodass jetzt Konfigurationsoptionen vorhanden sind, um Ihren Workflow zu vereinfachen.
Führen Sie dies in der Befehlszeile aus, um es Ihrer globalen Git-Konfiguration hinzuzufügen:
quelle
git push -u origin HEAD
wie hier beantwortet , etwas ausführlicher (Sie schreiben, was Sie tun), ohne zu viel zu tippen. Außerdem hat eingit push -u
ohne zusätzliche Argumente für mich nicht funktioniert, wenn der Zweig mit-t
git config --global push.default upstream && git checkout -b foo && <change a file> && git push -u
funktioniert nicht (ab Git 2.19.1); push erfordert die Argumente remote und branch.git co remote_branch_name
?Wie in den vorherigen Antworten angegeben,
reicht aus, um eine lokale Niederlassung zu pushen.
Ihre Kollegen können mit diesem Befehl alle Remote-Zweige (einschließlich neuer) abrufen:
Um dann Änderungen am Zweig vorzunehmen, wird der übliche Ablauf ausgeführt:
quelle
Erstellen Sie lokal einen neuen Zweig basierend auf dem aktuellen Zweig:
Übernehmen Sie alle Änderungen wie gewohnt. Schieben Sie es dann stromaufwärts:
Dies ist eine Verknüpfung, mit der Sie den aktuellen Zweig in einen gleichnamigen Zweig verschieben
origin
und verfolgen können, damit Sie ihnorigin HEAD
in Zukunft nicht mehr angeben müssen .quelle
git push -u origin HEAD
. Ich denke, es ist der klarste Weg.git status
vorher zu rennen .git remote show origin
als dritten Schritt hinzufügen , um die neue Tracking / Tracking-Beziehung zu visualisieren.Wenn Sie einen Zweig aus dem aktuellen Zweig erstellen möchten
Wenn Sie einen Zweig von einem Remote-Zweig möchten, können Sie es versuchen
Wenn Sie mit den Änderungen fertig sind, können Sie die Datei hinzufügen.
Führen Sie dann ein lokales Commit durch
Wenn Sie zum Remote-Repo wechseln möchten
Alles zusammen wird sein
oder Wenn Sie einen Zweig aus einem Remote-Zweig erstellen möchten, sagen Sie Entwicklung
git checkout -b bug_fixes Ursprung / Entwicklung
Sie können auf die Filiale zum Remote-Repo von drücken
Immer wenn Sie Ihren Zweig von einem anderen Zweig aus aktualisieren möchten, sagen Sie Master .
git pull origin master
.quelle
Wenn Sie tatsächlich nur einen Remote-Zweig erstellen möchten, ohne den lokalen zu haben, können Sie dies folgendermaßen tun:
Es drückt alles, was Ihr KOPF ist, in den Zweig foo , der auf der Fernbedienung nicht vorhanden war.
quelle
Einfachste Lösung ... Drumm Roll ... Git Version 2.10.1 (Apple Git-78)
Hinweis: Der Zweig, den Sie gerade in Ihrer lokalen Umgebung erstellt haben, und der nicht vorhandene Remote-Zweig, in den Sie Pushen möchten, müssen denselben Namen haben .
quelle
git push -u
es viel einfacher ist. Erfordert, dass Sie eine globale Konfigurationszeile haben, siehe stackoverflow.com/a/27185855/109305 . Ich benutzegit push -u
ständig, es deckt 99% meiner Anwendungsfälle bei der Arbeit ab.[Schnelle Antwort]
Sie können es in 2 Schritten tun:
1. Verwenden Sie
checkout
zum Erstellen des lokalen Zweigs:2. Verwenden Sie den
push
Befehl, um den Zweig automatisch zu erstellen und den Code an das Remote-Repository zu senden:quelle
Zuerst erstellen Sie den Zweig lokal:
Und dann, um den Zweig aus der Ferne zu erstellen:
Hinweis: Dies funktioniert mit den neuesten Versionen von git:
Prost!
quelle
git push
wenn Ihr lokaler Zweig nicht von einer Fernbedienung verfolgt wird.Schieben Sie den Ast auf Github:
Wenn Sie etwas in Ihrer Niederlassung festschreiben möchten, müssen Sie sich in Ihrer Niederlassung befinden.
Sie können alle Zweige anzeigen, die erstellt wurden mit:
Welches wird zeigen:
Fügen Sie eine neue Fernbedienung für Ihre Niederlassung hinzu:
Übertragen Sie Änderungen aus Ihrem Commit in Ihre Filiale:
Aktualisieren Sie Ihren Zweig, wenn der ursprüngliche Zweig aus dem offiziellen Repository aktualisiert wurde:
Dann müssen Sie sich bewerben, um Änderungen zusammenzuführen. Wenn Ihr Zweig von der Entwicklung abgeleitet ist, müssen Sie Folgendes tun:
Löschen Sie einen Zweig in Ihrem lokalen Dateisystem:
So erzwingen Sie das Löschen eines lokalen Zweigs in Ihrem Dateisystem:
Löschen Sie den Zweig auf Github:
Hier alle Informationen
Anderes bestehendes Projekt
quelle
Erstellen eines lokalen Zweigs aus einem vorhandenen Zweig (kann Master / Develop / Any-Other-Branch sein).
Schieben Sie dies zur Fernbedienung
Hier,
Wenn wir die lokalen und Remote-Zweigstellennamen entfernen, hat dies das Format
Dadurch wird der lokale Zweig auf Remote und mit demselben Namen wie der lokale Zweig verzweigt. Die lokale Niederlassung verfolgt auch die entfernte Niederlassung.
quelle
Ich weiß, dass diese Frage gut beantwortet ist, wollte aber nur die Schritte auflisten, die ich unternehme, um einen neuen Zweig "myNewBranch" zu erstellen und auf remote (in meinem Fall "origin") zu pushen und das Tracking einzurichten. Betrachten Sie dies als die "TL; DR" -Version :)
quelle
Mit git können Sie jetzt einfach eingeben, wenn Sie sich im richtigen Zweig befinden
git push --set-upstream origin <remote-branch-name
>und git erstellen für Sie den Ursprungszweig.
quelle
Ich wollte das nur hinzufügen, während:
Erstellt einen neuen Zweig und überprüft diesen Zweig / macht ihn zu Ihrem aktuellen Zweig. Wenn Sie aus irgendeinem Grund nur einen Zweig abbrechen, ihn aber nicht zu Ihrem aktuellen Zweig machen möchten, verwenden Sie den folgenden Befehl:
Im ersten Befehl macht "Auschecken" diesen Zweig zu Ihrem aktuellen Zweig, und das "-b" bedeutet: Dieser Zweig existiert noch nicht, also machen Sie es für mich.
quelle
Vorgehensweise über den Quellbaum
quelle
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, wie Sie es in Eclipse durch Egit tun.
1) Gehen Sie zur Ansicht "Git Repository Exploring" und erweitern Sie das Git-Projekt, zu dem Sie einen Zweig erstellen möchten. Wählen Sie unter Brances -> Local .. den Zweig aus, für den Sie den Zweig erstellen möchten (in meinem Fall habe ich master ausgewählt .. Sie können einen anderen Zweig auswählen, wenn Sie möchten). Klicken Sie dann mit der rechten Maustaste und klicken Sie auf die Option Branch Branch erstellen. Wählen Sie die Option Dieses Projekt auschecken und klicken Sie dann auf die Schaltfläche Fertig stellen.
2) Wählen Sie nun im Projektexplorer das Projekt aus. Klicken Sie mit der rechten Maustaste und dann auf Team -> Push Branch.
Ein neuer Remote-Zweig wird erstellt. Sie können Ihren Kollegen den Namen der Niederlassung geben, damit sie sie abrufen können.
quelle
Ich habe zwei Möglichkeiten verwendet, um einen Zweig zu erstellen
Wenn Sie TortoiseGit verwenden, gehen Sie folgendermaßen vor: -
1.Erstellen Sie Branch mit TortoiseGit
2.Drücken Sie den Zweig
3.Schalten Sie zu neuem Zweig um
Wenn Sie die Eingabeaufforderung verwenden, gehen Sie folgendermaßen vor: -
1.Erstellen Sie einen Zweig mit der Eingabeaufforderung
2.Drücken Sie den Zweig
3. Wechseln Sie zu einem neuen Zweig, der bereits zu new_branch_name wechselt, andernfalls können Sie ihn verwenden
quelle
Ich benutze dies und es ist ziemlich praktisch:
Sie brauchen nicht einmal den Git-Status. Vielleicht möchte ich nur sicherstellen, dass alles gut läuft ...
Sie können sowohl den Zweig LOCAL als auch den Zweig REMOTE mit einem einzigen Befehl haben.
quelle