Er is geen trackinginformatie voor de huidige tak

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 pulluitgevoerd 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 .gitconfigbestand:

[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 originde naam is van de afstandsbediening en masteris 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 -udie 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 pushmaar 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.

  1. Pull met specifieke filiaalnaam

git pull origin master

  1. 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

Other episodes