2012-12-27 16 views
5

I rozwidlone repozytorium kolby i sklonowany swoją stronę internetową gałąź z GitHub jakgit push GitHub repozytorium gałęzi daje błąd „mistrz src refspec nie pasuje do żadnej”

git clone --recursive https://github.com/lovesh/flask.git -b website 

Potem ustawił pilota jak

git remote add upstream https://github.com/lovesh/flask.git -t website 
git fetch upstream 

Następnie dokonałem zmian (nie utworzyłem żadnych dodatkowych plików, ale zmodyfikowałem 2 pliki) musiałem wykonać, następnie dodałem pliki i zatwierdziłem zmiany w ten sposób

git add . 
git commit . 

To monitowało mnie o komentarz do zatwierdzenia i wpisałem komentarz. Teraz pokazał mi

2 files changed, 69 insertions(+), 7 deletions(-) 

Ale gdy próbuję naciskać tych zmian na moim koncie GitHub

git push origin master 

to pokazuje błąd

error: src refspec master does not match any. 
error: failed to push some refs to 'https://github.com/lovesh/flask.git' 

Rozejrzałem się i ludzie, którzy ten problem powiedział, że nie zatwierdzili zmian jako here i here. Ale popełniłem nawet wtedy to pokazuje mi ten błąd. Aby potwierdzić próbowałem

git status 

i pokazał

# On branch website 
# Your branch is ahead of 'origin/website' by 1 commit. 
# 
nothing to commit (working directory clean) 

także git log pokazuje także mój popełnić w dzienniku. Jestem nowy w git. Czy coś mi brakuje?

Odpowiedz

1

Po pierwsze, nie masz gałęzi głównej po sklonowaniu repozytorium.
git clone szczegóły:

--branch <name> 
-b <name> 

Zamiast wskazując nowo utworzony oddział HEAD do wskazywanego przez sklonowanego repozytorium HEAD wskaż <name> zamiast oddziału.
W niezarejestrowanym repozytorium jest to gałąź, która zostanie wyrejestrowana.
--branch może również przyjmować znaczniki i odłącza HEAD przy tym zatwierdzeniu w wynikowym repozytorium.

Więc w twoim przypadku, jeśli chcesz tworzyć i śledzić na stronie internetowej lokalnego oddziału do pochodzenia, trzeba:

git push -u origin website 

(po tym, prosty git push wystarczy: więcej na polityka wepchnąć "git - push current vs. push upstream (tracking)")


Twoje inne zdalnego upstream 'będzie również tylko śledzić upstream/website Branża:

git remote dokumentacja wspomina:

Z -t <branch> opcji, zamiast domyślnego glob refspec do zdalnego śledzić wszystkie oddziały pod refs/remotes/<name>/ namespace, A refspec śledzić tylko jest tworzony <branch>.
Możesz podać więcej niż jeden -t <branch>, aby śledzić wiele gałęzi bez chwytania wszystkich gałęzi.

W twoim przypadku, to są tylko śledzenie upstream/website (+refs/heads/website:refs/remotes/upstream/website) zamiast default refspec (+refs/heads/*:refs/remotes/upstream/*).

1

Spróbuj git push origin website Może być skonfigurowany swój główny oddział pod tą nazwą. Spróbuj i daj mi znać.

+0

Dzięki. Zadziałało. Ale czy możesz wyjaśnić, jak skonfigurowałem swój główny oddział pod tą nazwą? Czy też w przypadku 'git push origin' muszę podać nazwę oddziału, do którego się przekierowuję? – lovesh

Powiązane problemy