Przekazywanie lokalnego oddziału do GitHub

117

Mam skonfigurowanego Git tak, że po uruchomieniu git pushwypycha zmiany do mojego repozytorium GitHub. Do tej pory miałem tylko główną gałąź.

Jednak utworzyłem teraz oddział lokalny i zobowiązałem się do tego za pomocą:

git checkout -b my_new_branch
git commit

To, co chciałbym teraz zrobić, to przesłać zmiany w tej gałęzi do GitHub. Czy po prostu robię git push?

Kiedy po raz pierwszy go skonfigurowałem, uruchomiłem:

git config push.default current
Noam
źródło
Jakie jest Twoje pytanie? Przy push.defaultustawieniu w ten sposób tak, git pushprzeniesie bieżącą gałąź do źródła, czyli repozytorium Github, zakładając, że sklonowałeś stamtąd. (Możesz wybrać innego pilota, branch.my_new_branch.remotejeśli chcesz.) Więc próbowałeś tego i nie działało?
Cascabel,
1
Jeśli chcesz, aby wszystkie lokalne gałęzie były
wysyłane

Odpowiedzi:

221

Wydaje mi się, że szukasz git push origin my_new_branch, zakładając, że twój pierwotny pilot jest skonfigurowany do trafiania w repozytorium github.

Tomek
źródło
git push <remote> <branch> zgodnie z atlassian.com/git/tutorials/syncing/git-push
vikramvi
3
Jeśli potem zechcesz pracować nad tą gałęzią z innymi osobami i dlatego robisz git pull, będziesz chciał ustawić informacje o śledzeniu dla swojej nowej gałęzi: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia Kwietnia
9

W zależności od lokalnych ustawień git, jeśli masz wyewidencjonowaną gałąź, która nie jest tą, którą sklonowałeś, lub taką, która istnieje tam, gdzie próbujesz wypchnąć, git nie prześle twojego lokalnego oddziału.

Oto wiadomość, którą przekazuje:

ostrzeżenie: push.default nie jest ustawione; jego niejawna wartość zmieniła się w Git 2.0 z „dopasowywania” na „proste”. Aby zdusić ten komunikat i zachować tradycyjne zachowanie, użyj:

git config - globalne dopasowanie push.default

Aby zdusić tę wiadomość i zastosować teraz nowe zachowanie, użyj:

git config --global push.default simple

Gdy push.default jest ustawione na 'matching', git wypycha lokalne gałęzie do zdalnych gałęzi, które już istnieją o tej samej nazwie.

Od Git 2.0, Git domyślnie stosuje bardziej konserwatywne „proste” zachowanie, które wypycha bieżącą gałąź tylko do odpowiedniej gałęzi zdalnej, której używa „git pull” do aktualizacji bieżącej gałęzi.

Aby uzyskać więcej informacji, zobacz „git help config” i wyszukaj „push.default”. (tryb „prosty” został wprowadzony w Git 1.7.11. Użyj podobnego trybu „bieżący” zamiast „prosty”, jeśli czasami używasz starszych wersji Gita)

fatal: bieżąca gałąź MyLocalBranchnie ma gałęzi upstream. Aby wypchnąć bieżącą gałąź i ustawić pilota jako nadrzędny, użyj

git push --set-upstream origin MyLocalBranch
xaxxon
źródło
0

Jeśli jesteś naprawdę leniwy, możesz wypchnąć wszystkie lokalne oddziały , po prostu używając

git push --all

--wszystko

Wepchnij wszystkie gałęzie (tj. Odniesienia poniżej refs/heads/); nie może być używany z innymi <refspec>.

serv-inc
źródło
-12

Jeśli skonfigurowałeś git do wysyłania do głównego repozytorium GitHub, bez względu na to, w jakiej gałęzi jesteś, będzie on przekazywał do twojego głównego repozytorium GitHub.

Pamiętaj, że jeśli wielu programistów pracuje w tym samym repozytorium, możesz uzyskać konflikt.

GiaNU
źródło
Uruchomiłem git config push.default current
Noam