Frage

Ich arbeite an einem lokalen Git -Repository. Es gibt zwei Zweige, master und feature_x.

Ich möchte schieben feature_x zum Remote -Repo, aber ich möchte die Änderungen nicht auf die ändern master Zweig.

Wird a git push origin feature_x Von meinem feature_x Zweig (feature_x Branch existiert bereits in Fernbedienung) Arbeit?

Ich möchte dies nicht auf meiner Box testen, weil ich momentan nicht zum Master -Meister drängen kann.

War es hilfreich?

Lösung

Ja, machen Sie einfach Folgendes

git checkout feature_x
git push origin feature_x

Andere Tipps

Standardmäßig git push Aktualisiert alle Remote -Zweige. Sie können GIT jedoch so konfigurieren, dass nur die aktuelle Filiale auf dem stromaufwärts gelegenen Zweig aktualisiert werden.

git config push.default upstream

Dies bedeutet, dass Git nur die aktuelle (ausgecheckte) Filiale aktualisiert, wenn Sie Git drücken.

Weitere gültige Optionen sind:

  • nothing : Schieben Sie nichts (Fehler heraus), es sei denn Ein RefSpec wird ausdrücklich angegeben. Dies ist in erster Linie für Menschen gedacht, die Fehler vermeiden wollen, indem sie immer explizit sind.
  • matching : Drücken Sie alle Zweige mit dem gleicher Name an beiden Enden. (Standardoption vor Ver 1.7.11)
  • upstream: Drücken Sie den aktuellen Zweig in seinen stromaufwärts gelegenen Zweig. Dieser Modus ist nur sinnvoll, wenn Sie auf das gleiche Repository drängen, aus dem Sie normalerweise ziehen würden (dh zentraler Workflow). Sie müssen nicht den gleichen Namen haben für lokale und abgelegene Niederlassung.
  • tracking : Veraltet, verwenden Sie upstream stattdessen.
  • current : Drücken Sie den aktuellen Zweig zum abgelegenen Zweig der gleicher Name am Empfangsende. Arbeitet sowohl in zentralen als auch in nicht-zentralen Workflows.
  • simple : [verfügbar seit Ver 1.7.11] im zentralisierten Workflow wie verarbeiten wie upstream Mit einer zusätzlichen Sicherheit, um sich zu weigern, sich zu verschieben, wenn sich der Name des vorgelagerten Zweigs von der lokalen unterscheidet. Wenn Sie in eine Fernbedienung drängen, die sich von der Fernbedienung unterscheidet, aus der Sie normalerweise ziehen, arbeiten Sie als current. Dies ist die sicherste Option und eignet sich für Anfänger. Dieser Modus ist der Standard in Git 2.0 geworden.

Geringes Update oben auf Karthik Boses Antwort - Sie können Git global konfigurieren, um alle Ihre Arbeitsbereiche zu beeinflussen, um sich so zu verhalten:

git config --global push.default upstream

Nehmen wir also an, Sie haben einen lokalen Zweig -Foo, eine Fernbedienung namens Origin und einen Remote -Zweig -Ursprung/Master.

Um den Inhalt von Foo zu Origin/Master zu bringen, müssen Sie zunächst den stromaufwärts gelegenen Einrichten einrichten:

git checkout foo
git branch -u origin/master

Dann können Sie diesen Zweig mit:

git push origin HEAD:master

Im letzten Befehl können Sie -Force, um die gesamte Herkunftsgeschichte/Master durch das von Foo zu ersetzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top