Verwarrende foutmelding van git

Ik kreeg dit bericht van Git:

Je hebt gevraagd om uit de externe ‘oorsprong’ te halen, maar hebt dit niet gespecificeerd
een tak. Omdat dit niet de standaard geconfigureerde afstandsbediening is
voor uw huidige vertakking moet u een vertakking specificeren op de opdrachtregel.

Kan iemand het uitleggen? en nog belangrijker hoe het op te lossen?


Antwoord 1, autoriteit 100%

Je moet git vertellen welke branch je uit de “oorsprong” remote repo’s wilt halen.

Ik neem aan dat je de standaard branch (master) wilt, dus git pull origin masterzou je probleem moeten oplossen.

Zie git help branch, git help pullen git help fetchvoor meer informatie.


Antwoord 2, autoriteit 90%

Om het op te lossen, ervan uitgaande dat je in de masterbranch zit en de masterbranch van de originremote wilt halen, nieuw genoeg Git-versies (1.8 of nieuwer):

git branch -u origin/master master

(Analoog voor andere filialen en/of afstandsbedieningen.)

Als je dit kunt combineren met een duwtje, is het nog korter:

git push -u origin master

Daarna zal een eenvoudige git pull/git pushdoen wat je verwacht.


Tijdens de Git 1.7 serie, had git branchde -uswitch niet (alleen git pushhad), en in plaats daarvan had jij moest de veel langere --set-upstreamgebruiken:

git branch --set-upstream master origin/master

Let op de omkering van argumenten in vergelijking met -u. Ik heb meer dan eens met deze bestelling geknoeid.


Dit zijn trouwens allemaal afkortingen voor het volgende, wat je nog steeds expliciet kunt doen:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

Vóór 1.7 moesthet op deze manier.


Antwoord 3, autoriteit 3%

Bericht zegt precies waar het over gaat. Uw huidige vestiging is niet gekoppeld aan (volgt niet) een vestiging in oorsprong. Dus git weet niet wat hij moet doen.

Wat te doen? Dat hangt ervan af…

In de meeste gevallen werk je vanuit een lokale branch xyzdie vertakt is van masterdie gekloond is van de master van origin. De gebruikelijke manier om het op te lossen is om over te schakelen naar masteren te trekken om het te synchroniseren met originen dan terug te komen naar xyzen rebase master.

Maar in jouw situatie wil je misschien iets anders doen. We kunnen het niet weten zonder de details van je filialen en afstandsbedieningen te kennen en hoe je ze wilt gebruiken.

Other episodes