remote - git tutorial




Wie erstellt man einen entfernten Git-Zweig? (12)

Ich habe eine lokale Niederlassung geschaffen, die ich stromaufwärts "schieben" möchte. Es gibt eine ähnliche Frage zu Stack Overflow, wie ein neu erstellter Remote-Zweig verfolgt werden kann.

Mein Workflow ist jedoch etwas anders. Zuerst möchte ich eine lokale Niederlassung erstellen und werde sie nur dann stromaufwärts verschieben, wenn ich zufrieden bin und meine Niederlassung teilen möchte.

  • Wie würde ich das machen? (meine Google-Suchanfragen schienen nichts zu finden).
  • Wie würde ich meinen Kollegen sagen, sie aus dem vorgelagerten Repository zu ziehen?

UPDATE Mit Git 2.0 gibt es eine einfachere Antwort, die ich unten geschrieben habe: https://stackoverflow.com/a/27185855/109305


Erstellen Sie den Zweig auf Ihrem lokalen Computer und wechseln Sie in diesen Zweig:

$ git checkout -b [name_of_your_new_branch]

Schieben Sie den Zweig auf Github:

$ git push origin [name_of_your_new_branch]

Wenn Sie in Ihrer Zweigstelle etwas festschreiben möchten, müssen Sie unbedingt in Ihrer Zweigstelle sein.

Sie können alle mit folgenden Zweigen erstellten Zweige sehen:

$ git branch

Was wird zeigen:

* approval_messages
  master
  master_clean

Fügen Sie eine neue Fernbedienung für Ihre Zweigstelle hinzu:

$ git remote add [name_of_your_remote] 

Push-Änderungen von Ihrem Commit in Ihre Zweigstelle:

$ git push origin [name_of_your_remote]

Aktualisieren Sie Ihren Zweig, wenn der ursprüngliche Zweig aus dem offiziellen Repository aktualisiert wurde:

$ git fetch [name_of_your_remote]

Dann müssen Sie sich für das Zusammenführen von Änderungen bewerben. Wenn Ihr Zweig von der Entwicklung abgeleitet ist, müssen Sie Folgendes tun:

$ git merge [name_of_your_remote]/develop

Löschen Sie einen Zweig in Ihrem lokalen Dateisystem:

$ git branch -d [name_of_your_new_branch]

So erzwingen Sie das Löschen eines lokalen Zweigs in Ihrem Dateisystem:

$ git branch -D [name_of_your_new_branch]

Löschen Sie den Zweig auf Github:

$ git push origin :[name_of_your_new_branch]

Hier alle Informationen

Anderes vorhandenes Projekt


Einfache Git 2.0+ Lösung:

Ab Git 2.0 ist das Verhalten einfacher geworden :

Sie können git mit push.default = current konfigurieren, um das Leben zu erleichtern:

Ich habe dies hinzugefügt, damit ich jetzt einen neuen Zweig mit Upstream schieben kann

$ git push -u

-u einen entfernten Zweig mit demselben Namen. Nein, mit dieser Konfiguration werden Sie die Fernreferenz automatisch auf git push erraten. Aus der git.config-Dokumentation :

push.default

Definiert die Aktion, die git push ausführen soll, wenn explizit kein refspec angegeben wird.

push.default = current - drücken Sie den aktuellen Zweig, um einen Zweig mit demselben Namen auf der empfangenden Seite zu aktualisieren. Funktioniert sowohl in zentralen als auch in nicht zentralen Workflows.

Für mich ist dies eine gute Vereinfachung meines täglichen Git-Workflows. Die Konfigurationseinstellung kümmert sich um den "üblichen" Anwendungsfall, bei dem Sie einen Zweig lokal hinzufügen und ihn remote erstellen möchten. Ich kann ebenso einfach lokale Zweige aus Fernbedienungen erstellen, indem ich einfach git co remote_branch_name (im Gegensatz zu --set-upstream-to flag).

Ich kenne diese Frage und die akzeptierten Antworten sind ziemlich alt, aber das Verhalten hat sich geändert, so dass jetzt Konfigurationsoptionen zur Vereinfachung Ihres Workflows vorhanden sind.

Um Ihre globale Git-Konfiguration hinzuzufügen, führen Sie diese in der Befehlszeile aus:

$ git config --global push.default current

Erstellen Sie lokal einen neuen Zweig basierend auf dem aktuellen Zweig:

git checkout -b newbranch

Übernehmen Sie alle Änderungen wie gewohnt. Dann schieben Sie es stromaufwärts:

git push -u origin HEAD

Dies ist eine Verknüpfung, um den aktuellen Zweig zu einem Zweig mit demselben Namen am origin und ihn zu verfolgen, sodass Sie in Zukunft keinen origin HEAD angeben müssen.


Erstellen eines lokalen Zweigs aus einem vorhandenen Zweig (kann Master / Entwicklung / Any-Other-Zweig sein).

git checkout -b Zweigname

Schieben Sie diese zur Fernbedienung

git push -u Fernname Lokaler_Stammname: Fernstammname

Hier,

  1. -u: Legt den Upstream-Zweig fest
  2. remote_name: git setzt den Namen standardmäßig auf "Ursprung", wenn das Repository erstellt wird. Dies kann jedoch in einen anderen beliebigen Namen geändert werden.
  3. local_branch_name: ist der Name des lokalen Zweigs, der gepusht werden soll.
  4. remote_branch_name: ist der Name des Remote-Zweigs, den Sie auf Remote erstellen möchten.

Wenn wir die lokalen und fernen Zweignamen entfernen, hat es das Format

git Push -u Fernname Zweigname

Dadurch wird der lokale Zweig in den Remote-Zweig verschoben und hat denselben Namen wie der lokale Zweig Zweigname. Die lokale Niederlassung verfolgt auch die entfernte Niederlassung.


Ich wollte nur hinzufügen, während:

git checkout -b {branchName}

Erzeugt einen neuen Zweig und überprüft diesen Zweig / macht ihn zu Ihrem aktuellen Zweig. Wenn Sie aus irgendeinem Grund nur einen Zweig abbrechen möchten, ihn aber nicht zu Ihrem aktuellen Zweig machen möchten, verwenden Sie den folgenden Befehl:

git branch {branchName}

Im ersten Befehl macht "checkout" diesen Zweig zu Ihrem aktuellen Zweig, und "-b" bedeutet: Dieser Zweig existiert noch nicht, also machen Sie es für mich.


Mit git können Sie jetzt einfach tippen, wenn Sie sich im richtigen Zweig befinden

git push --set-upstream origin <remote-branch-name >

und git erstellen für Sie den Ursprungszweig.


Wenn Sie aus dem aktuellen Zweig einen Zweig erstellen möchten

git checkout -b {your_local_branch_name} 

Wenn Sie einen Zweig von einem entfernten Zweig wünschen, können Sie es versuchen

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

Wenn Sie mit den Änderungen fertig sind, können Sie die Datei hinzufügen.

git add -A or git add <each_file_names>

Dann machen Sie ein Commit vor Ort

git commit -m 'your commit message'

Wenn Sie zum Remote-Repo wechseln möchten

git push -u origin <your_local_branch_name>

Alles zusammen wird sein

git checkout -b bug_fixes 

oder Wenn Sie einen Zweig von einem entfernten Zweig aus erstellen möchten, sagen Sie Entwicklung

git checkout -b bug_fixes ursprung / entwicklung

Sie können auf den Zweig zu Remote-Repo durch drücken

git push -u origin **bug_fixes**

Wenn Sie Ihre Zweigstelle von einer anderen Zweigstelle aus aktualisieren möchten, sagen Sie " Master" .

git pull origin master .


Wenn Sie tatsächlich nur einen entfernten Zweig erstellen möchten, ohne den lokalen Zweig zu haben, können Sie dies folgendermaßen tun:

git push origin HEAD:refs/heads/foo

Dadurch wird das, was sich in Ihrem KOPF befindet, dazu gezwungen , das Netzwerk zu verzweigen, das auf der Fernbedienung nicht vorhanden war.


Wie in den vorherigen Antworten angegeben,

git push <remote-name> <local-branch-name>:<remote-branch-name>

reicht aus, um eine lokale Niederlassung voranzutreiben.

Ihre Kollegen können mit diesem Befehl alle entfernten Zweige (einschließlich neuer) ziehen:

git remote update

Dann, um Änderungen an der Verzweigung vorzunehmen, den üblichen Ablauf:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

Zuerst erstellen Sie Ihre Niederlassung lokal:

git checkout -b <branch-name> # Create a new branch and check it out

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:

git push <remote-name> <branch-name> 

Wo <remote-name> normalerweise der origin , der Name, den git der Remote 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 lautet:

git push <remote-name> <local-branch-name>:<remote-branch-name>

Wenn Sie jedoch einen auslassen, wird davon ausgegangen, dass beide Zweignamen gleich sind. Machen Sie sich jedoch zur Vorsicht mit dem kritischen Fehler, nur Folgendes anzugeben :<remote-branch-name> der entfernten Verzweigung :<remote-branch-name> (mit dem Doppelpunkt), oder die entfernte Verzweigung wird gelöscht!

Damit ein nachfolgender git pull weiß, was zu tun ist, sollten Sie stattdessen Folgendes verwenden:

git push --set-upstream <remote-name> <local-branch-name> 

Wie unten beschrieben, --set-upstream Option --set-upstream einen Upstream-Zweig ein:

Fügen Sie für jeden Zweig, der aktuell ist oder erfolgreich verschoben wurde, eine Upstream-Referenz (Tracking) hinzu, die von git-pull (1) ohne Argumente und anderen Befehlen verwendet wird.


Zuerst müssen Sie Ihren Zweig lokal erstellen

git checkout -b your_branch

Danach können Sie lokal in Ihrer Zweigstelle arbeiten. Wenn Sie bereit sind, die Zweigstelle gemeinsam zu nutzen, drücken Sie sie. Mit dem nächsten Befehl wird die Verzweigung zum Ursprung des Remote-Repositorys verschoben und verfolgt

git push -u origin your_branch

Teammitglieder können Ihre Niederlassung erreichen, indem Sie Folgendes tun:

git fetch
git checkout origin/your_branch

Sie können im Zweig weiterarbeiten und pushen, wann immer Sie möchten, ohne Argumente an git push weiterzuleiten (git push ohne Argumente schiebt den Master zum Remote-Master, your_branch local zum Remote-your_branch usw.).

git push

Teamkollegen können durch Festschreiben zu Ihrem Zweig pushen und dann explizit pushen

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

Oder verfolgen Sie den Zweig, um die Argumente für git push zu vermeiden

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push

git push -u <remote-name> <branch-name> funktioniert nicht, wenn der neu erstellte Zweig nicht aus demselben Repo erstellt wird, dh wenn Sie den neuen Zweig nicht mit git checkout -b new_branch haben das wird nicht funktionieren.

Zum Beispiel hatte ich lokal zwei verschiedene Repositorys geklont, und ich musste repo2 / branch1 nach repo1 / kopieren und dann auch drücken.

This Link hat mir geholfen, meinen lokalen Zweig (von einem anderen Repo geklont) zu meinem Remote-Repo zu verschieben:





git-branch