Ik gebruik github al sinds een relatief korte periode en ik heb de client altijd gebruikt om commits en pulls uit te voeren. Ik besloot het gisteren vanuit de git bash te proberen, en ik heb met succes een nieuwe repo gemaakt en gecommitteerde bestanden.
Vandaag heb ik wijzigingen aangebracht in de repository vanaf een andere computer, ik heb de wijzigingen doorgevoerd en nu ben ik weer thuis en heb ik een git pull
uitgevoerd om mijn lokale versie bij te werken en ik krijg dit:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream develop origin/<branch>
de enige bijdrager aan deze repo ben ik en er zijn geen branches (alleen een master). Ik ben op Windows en ik heb de pull van git bash uitgevoerd:
git-status:
$ git status
# On branch master
nothing to commit, working directory clean
git branch:
$ git branch
* master
Wat doe ik verkeerd?
Antwoord 1, autoriteit 100%
Je zou kunnen specificeren welke branch je wilt pullen:
git pull origin master
Of je zou het zo kunnen instellen dat je lokale master branch de github master branch volgt als een upstream:
git branch --set-upstream-to=origin/master master
git pull
Deze tak tracking is automatisch voor u ingesteld wanneer u een repository klemt (alleen voor de standaardtak), maar als u een afstandsbediening toevoegt aan een bestaande repository, moet u de tracking zelf instellen. Gelukkig maakt het advies dat Git gegeven is dat vrij eenvoudig te onthouden hoe te doen.
Antwoord 2, Autoriteit 5%
Zie: Git Checkout-tag, Git Pull faalt in tak
Als je dit als ik je altijd nodig hebt, kun je een alias instellen om het automatisch te doen door het volgende toe te voegen aan je .gitconfig
bestand:
[alias]
set-upstream = \
!git branch \
--set-upstream-to=origin/`git symbolic-ref --short HEAD`
Wanneer u het bericht ziet There is no tracking information...
, RUN:
git set-upstream
git push
Dankzij https://zarino.co.uk/post/gits-set -Upstream /
Antwoord 3, Autoriteit 3%
Het antwoord van Computerdruïde is geweldig, maar ik denk niet dat het nodig is om de huidige manier handmatig in te stellen tenzij je dat wilt. Ik voeg dit antwoord toe omdat mensen denken dat dat een noodzakelijke stap is.
Deze fout is verdwenen als u de afstandsbediening opgeeft waarvan u hieronder wilt trekken:
git pull origin master
Merk op dat origin
de naam is van de afstandsbediening en master
is de filiaalnaam.
1)
Hoe de naam van de externe
te controleren
git remote -v
2) Hoe te zien welke takken beschikbaar zijn in de repository.
git branch -r
Antwoord 4
Ik kom dit exacte bericht vaak tegen omdat ik een lokale branch aanmaak via git checkout -b <feature-branch-name>
zonder eerst de remote branch aan te maken.
Nadat al het werk was voltooid en lokaal was vastgelegd, was de oplossing git push -u
die de remote branch creëerde, al mijn werk pushte en vervolgens de merge-request-URL.
Antwoord 5
Ik probeerde de bovenstaande voorbeelden en kon ze niet laten synchroniseren met een (niet-master) branch die ik op een andere computer had gemaakt. Voor de achtergrond heb ik deze repository gemaakt op computer A (git v 1.8) en vervolgens de repository gekloond op computer B (git 2.14). Ik heb al mijn wijzigingen aangebracht op comp B, maar toen ik probeerde de wijzigingen op computer A over te brengen, kon ik dit niet doen, en kreeg dezelfde bovenstaande foutmelding. Net als bij de bovenstaande oplossingen, moest ik het volgende doen:
git branch --set-upstream-to=origin/<my_repository_name>
git pull
iets anders maar hopelijk helpt iemand
Antwoord 6
probeer
git pull --rebase
ik hoop dat dit antwoord helpt om hier oorspronkelijk te antwoorden https://stackoverflow.com/a/55015370/8253662
Antwoord 7
Met Git 2.24 hoef je niets meer te doen
git branch --set-upstream-to=origin/master master
git pull
U kunt het volgende doen:
git pull --set-upstream-to=origin/master master
Zie meer op “standaard remote en branch met de optie -u
– werkt met push
maar niet pull
“.
Antwoord 8
1) git branch –set-upstream-to=origin/<master_branch>
feature/<your_current_branch>
2) git pull
Antwoord 9
Hetzelfde is mij eerder overkomen toen ik een nieuwe git branch aanmaakte zonder deze naar de origin te pushen.
Probeer eerst die twee regels uit te voeren:
git checkout -b name_of_new_branch # create the new branch
git push origin name_of_new_branch # push the branch to github
Dan:
git pull origin name_of_new_branch
Het zou nu in orde moeten zijn!
Antwoord 10
Dit gebeurt omdat de huidige vertakking geen tracking heeft op de vertakking op de afstandsbediening. dus je kunt het op 2 manieren doen.
- Pull met specifieke filiaalnaam
git pull origin master
- Of u kunt een specifieke vestiging volgen naar de lokale vestiging.
git branch –set-upstream-to=origin/
Antwoord 11
Probeer het te gebruiken
git push --set-upstream origin <branch_name>
Anders
gebruik
git push -u
zal u vertellen wat er moet gebeuren.
Antwoord 12
$ git branch --set-upstream-to=heroku/master master
en
$ git pull
werkte voor mij!
Antwoord 13
Voor iedereen die wil begrijpen waaromdit gebeurt, zijn er een paar relevante concepten:
- Een git-repository kan nul of meer “remotes” hebben, die koppelingen naar andere repositories worden genoemd, meestal ergens op een centrale server. Je kunt ze opsommen met “git remote -v”
- Als je een repository van een andere server kloont, wordt er een standaard afstandsbediening met de naam “origin” voor je ingesteld.
- De volledige syntaxis voor zowel git push als git pull is het specificeren van een remote naam en een branch op die remote.
- Een lokale vertakking kan worden gekoppeld aan een vertakking op een afstandsbediening, zodat u deze niet elke keer hoeft te typen als u trekt of duwt.
- Als je een branch uitcheckt van een remote repository met “git switch branchname” of “git switch -u origin/branchname”, wordt de koppeling voor je ingesteld. (“git switch” is in dit geval hetzelfde als “git checkout”)
- Als je lokaal een branch aanmaakt en deze vervolgens pusht met “git push -u origin”, zal het de associatie instellen.
- Maarals u de “-u” niet opneemt in de eerste pull of push, wordt de koppeling niet opgeslagen, dus u moet elke keer specifiek zijn.
De oplossing, zoals andere antwoorden aangeven, is om de associatie in te stellen met “git branch –set-upstream-to=origin/branchname”, waarbij “origin” de naam van de remote is en “branchname” is hoe de branch wordt genoemd op de externe server. Dat is waarschijnlijk dezelfde naam die het lokaal heeft, maar dat hoeft niet zo te zijn.
Antwoord 14
git branch –set-upstream-to=origin/main