Verschieben eines lokalen Zweigs auf GitHub


117

Ich habe Git so konfiguriert, dass beim Ausführen git pushÄnderungen an meinem GitHub-Repo vorgenommen werden. Bisher hatte ich nur eine Hauptniederlassung.

Jetzt habe ich jedoch eine lokale Niederlassung erstellt und mich dazu verpflichtet, indem ich:

git checkout -b my_new_branch
git commit

Was ich jetzt tun möchte, ist, meine Änderungen in diesem Zweig auf GitHub zu übertragen. Mache ich nur einen Git Push?

Als ich es zum ersten Mal einrichtete, lief ich:

git config push.default current

Was genau ist deine Frage? Mit push.defaulteingestellt , dass Art und Weise, ja, git pushden aktuellen Zweig Herkunft drückt, die Ihr GitHub Repo ist, vorausgesetzt , Sie von dort geklont. (Sie können eine andere Fernbedienung angeben, branch.my_new_branch.remotewenn Sie möchten.) Haben Sie dies versucht und es funktioniert nicht?
Cascabel

1
Wenn Sie möchten, dass alle Ihre lokalen Niederlassungen auf dieselbe entfernte Niederlassung übertragen werden, geben Sie
Folgendes an

Antworten:


221

Ich glaube, Sie suchen git push origin my_new_branch, vorausgesetzt, Ihre Ursprungsfernbedienung ist so konfiguriert, dass sie Ihr Github-Repository erreicht.


git push <remote> <branch> gemäß atlassian.com/git/tutorials/syncing/git-push
vikramvi

3
Wenn Sie dann mit anderen Personen an diesem Zweig arbeiten und daher Git Pull git branch --set-upstream-to=origin/my_new_branch my_new_branch
ausführen

9

Abhängig von Ihren lokalen Git-Einstellungen wird Git Ihren lokalen Zweig nicht pushen, wenn Sie einen Zweig ausgecheckt haben, der nicht der ist, den Sie geklont haben, oder einen, der dort vorhanden ist, wo Sie versuchen zu pushen.

Hier ist die Nachricht, die es liefert:

Warnung: push.default ist nicht gesetzt; Sein impliziter Wert hat sich in Git 2.0 von "Matching" zu "Simple" geändert. Verwenden Sie Folgendes, um diese Nachricht zu unterdrücken und das traditionelle Verhalten beizubehalten:

git config --global push.default Matching

Verwenden Sie Folgendes, um diese Nachricht zu unterdrücken und das neue Verhalten jetzt zu übernehmen:

git config --global push.default einfach

Wenn push.default auf "Matching" gesetzt ist, überträgt git lokale Zweige an die Remote-Zweige, die bereits mit demselben Namen vorhanden sind.

Seit Git 2.0 verwendet Git standardmäßig das konservativere "einfache" Verhalten, bei dem der aktuelle Zweig nur auf den entsprechenden Remote-Zweig verschoben wird, mit dem "Git Pull" den aktuellen Zweig aktualisiert.

Weitere Informationen finden Sie unter 'git help config' und suchen Sie nach 'push.default'. (Der 'einfache' Modus wurde in Git 1.7.11 eingeführt. Verwenden Sie den ähnlichen Modus 'aktuell' anstelle von 'einfach', wenn Sie manchmal ältere Versionen von Git verwenden.)

fatal: Der aktuelle Zweig MyLocalBranchhat keinen vorgelagerten Zweig. Verwenden Sie, um den aktuellen Zweig zu pushen und die Fernbedienung als Upstream einzustellen

git push --set-upstream origin MyLocalBranch

0

Wenn Sie wirklich faul sind, können Sie alle lokalen Zweige durch einfaches Verwenden pushen

git push --all

--alles

Schieben Sie alle Zweige (dh Refs unter refs/heads/); kann nicht mit anderen verwendet werden <refspec>.


-12

Wenn Sie Ihr Git so konfiguriert haben, dass es auf Ihr GitHub-Master-Repo übertragen wird, wird es unabhängig von Ihrem Zweig auf Ihr GitHub-Master-Repo übertragen.

Beachten Sie, dass bei vielen Entwicklern, die im selben Repository arbeiten, ein Konflikt auftreten kann.


Ich habe git config push.default current ausgeführt
Noam
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.