wake-up-neo.com

Wie kann man nur einen Git-Zweig (und keine anderen Zweige) pushen?

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

Ich möchte pushen feature_x zum Remote-Repo, aber ich möchte die Änderungen nicht auf den Zweig master übertragen.

Wird ein git Push Origin feature_x Von meinem feature_x Ast (feature_x Branch existiert bereits auf Remote) Work?

Ich möchte dies nicht auf meiner Box testen, da ich momentan keine Push-to-Master-Funktion ausführen kann.

227
Rafael Mueller

ja, mach einfach folgendes

git checkout feature_x
git Push Origin feature_x
354
cpjolicoeur

Standardmäßig git Push aktualisiert alle entfernten Zweige. Sie können git jedoch so konfigurieren, dass nur der aktuelle Zweig auf den Upstream aktualisiert wird.

git config Push.default upstream

Dies bedeutet, dass git nur den aktuellen (ausgecheckten) Zweig aktualisiert, wenn Sie git Push ausführen.

Andere gültige Optionen sind:

  • nothing: Pushe nichts (Fehler raus), außer es wird ausdrücklich eine Referenz angegeben. Dies ist in erster Linie für Menschen gedacht, die Fehler vermeiden wollen, indem sie immer explizit sind.
  • matching: Alle Zweige mit dem gleichen Namen an beiden Enden verschieben. (Standardoption vor Version 1.7.11)
  • upstream: Verschiebt den aktuellen Zweig in den vorgelagerten Zweig. Dieser Modus ist nur dann sinnvoll, wenn Sie auf dasselbe Repository pushen, aus dem Sie normalerweise abrufen würden (d. H. zentraler Workflow). Es muss nicht derselbe Name angegeben werden für lokale und ferne Verzweigung.
  • tracking: Veraltet, verwenden Sie stattdessen upstream.
  • current: Schieben Sie den aktuellen Zweig auf den entfernten Zweig von gleicher Name auf der empfangenden Seite. Funktioniert sowohl in zentralen als auch in nicht zentralen Workflows.
  • simple: [verfügbar seit Version 1.7.11] Arbeiten Sie in einem zentralisierten Workflow wie upstream mit der zusätzlichen Sicherheit, Push abzulehnen, wenn der Name des Upstream-Zweigs nicht mit dem Namen des lokalen Zweigs übereinstimmt. Wenn Sie zu einer Fernbedienung drücken, die sich von der Fernbedienung unterscheidet, von der Sie normalerweise ziehen, arbeiten Sie als current. Dies ist die sicherste Option und eignet sich für Anfänger. Dieser Modus ist in Git 2.0 zum Standard geworden.
67
Karthik Bose

Kleinere Updates zusätzlich zu Karthik Boses Antwort - Sie können git global konfigurieren, damit sich alle Ihre Arbeitsbereiche so verhalten:

git config --global Push.default upstream
6
Bhaskar