2013-05-11 19 views
32

próbuję naciskać jeden z moich projektów do github i wciąż otrzymuję ten błąd:Git mistrz oddział ma upstream oddział

fatal: The current branch master has no upstream branch. 

Nigdy nie widziałem tego wcześniej. Ponownie zainicjowałem mój git, ponownie dodałem moje pochodzenie, usunąłem i ponownie zrobiłem repozytorium oraz ponownie utworzyłem mój klucz SSH.

Odpowiedz

2

Utwórz repo na github; dodaj plik README na github, a następnie sklonuj repozytorium github. Tworzenie pliku README (lub dowolnego innego pliku) jest potrzebne, aby uzyskać gałąź główną.

Wskazówki jak GitHub skłania do tworzenia README podczas tworzenia repozytorium enter image description here

74

Zamiast tworzenia nowego repozytorium na Github, klonowanie, że albo reinicjalizacji lokalnym repozytorium, następujące polecenie byłaby wystarczająca:

git push -u origin master 

pochodzenie stoi na pilocie zdalnego nazwy (domyślnie jest pochodzenie), a mistrzem jest oddział chcesz przesunąć, w Twoim przypadku jest to master, w przeciwnym razie trzeba by zmienić w poleceniu.
-u oznacza, że ​​lokalny oddział będzie skonfigurowany do śledzenia nowej utworzonej gałęzi głównej w repozytorium pochodzenia (głównym elementem źródłowym będzie odgórna gałąź oddziału lokalnego). Jeśli wzorzec gałęzi nie istnieje w zdalnym repozytorium, zostanie utworzony, w przeciwnym razie zostanie zaktualizowany (-u działa bez względu na to, czy istnieje, czy nie).

+0

próbowałem tego. Z jakiegoś powodu nie zadziałało. – JShoe

+0

Dzięki! Nie wiedziałem o -u –

+0

Jeśli to nie zadziałało, czy masz oddział zaczynający się od dużej litery? Github wydaje się używać małych liter do rozpoczynania nazw gałęzi. –

3

wychodził sam problem tylko powiedzieć GitHub używać obecnego szefa oddziału lokalnego repozytorium:

git push --set-upstream origin master 

chcesz to pomoże Ci i inni

+0

To nie działa, nie jest prawidłową opcją. –

+2

wypróbuj to: 'git push - set-upstream origin master' –

+0

Dziękuję sachinowi za poprawienie błędu i pośpiech. Poprawię odpowiedź. –

2

miałem ten problem dzisiaj na moim zdalnego repozytorium , nie Github i zdałem sobie sprawę, że nie wykonałem żadnych zatwierdzeń do mojego lokalnego repozytorium przed próbą przekazania do zdalnego repozytorium.

git add -A 
git commit 
git push origin master 
+0

Dla mnie ten sam problem. – willem

27

Następujące polecenie pracował dla mnie:

git branch --set-upstream-to=origin/master master 
+0

to. potrzebowałem też znaku równości. – Tim

+0

Nowsza wersja git powinna być 'git branch --set-upstream origin master' – Zombies

1

Niektórzy ludzie przybywający do tej strony może po prostu mieć to błąd, ponieważ zrobili git push origin i po prostu nie zdawał sobie sprawy, że trzeba określić zdalną gałąź nazwa również, jak w git push origin master.

Jeśli zrobisz git branch --set-upstream-to=origin/master master, odniesienie zostanie dodane do pliku .git \ config, aby połączyć lokalne i zdalne gałęzie. Zakładam, że wtedy nie musisz już określać nazwy oddziału podczas przesyłania do pilota.

0

Odpowiedź Cool Blue PRAWIE pracował dla mnie.

Najpierw zrobiłem: "git branch --set-upstream-to = pochodzenia/Master Master", zgodnie z zaleceniami Cool Blue.

Ale wciąż otrzymał komunikat o błędzie:
„nie udało się popchnąć niektóre pozycje literatury do«» nutą. Aktualizacje zostały odrzucone, ponieważ końcówka bieżącego oddziału stoi za jego odpowiednik Integracja zdalnego zdalnego zmian (np'Git pull ...') przed popychanie ponownie.”

Więc ... zrobił "git pchania -f" polecenia po oddział git, który pracował w końcu pracował dla mnie.

Po przymusowej naciśnięciem późniejsze „git wypychania” polecenia działało bez problemu.

0

Spróbuj zarówno HTTP i URL SSH? miałem problem kiedy używając URL SSH, ale kiedy przeszedłem do HTTP jednej, zadziałało jak czar.

Oto, co mam zmieniło:

pierwsze, zobaczyć zdalnego adresu URL

git remote -v 

i masz cele powrotem.

git remote rm destination 

Śledź ten link, jeśli potrzebujesz pomocy: https://help.github.com/articles/removing-a-remote/

Następnie

git remote add origin url 
git push -u origin master 
-1

Musisz skonfigurować pilota pierwszy, a następnie nacisnąć.

git remote add pochodzenie url-to-your-repo

instructions