Een foutmelding lezen
Een foutmelding is geen straf, maar een hint. De computer vertelt je wat er mis is, en vaak ook waar.
Waar zie je de foutmelding?
- Terminal: regels die beginnen met
error:offatal: - GitHub Desktop: een pop-up met dezelfde tekst
Zo pak je het aan
- Lees de eerste rode regel. Die zegt wat er mis is
- Zoek de bestandsnaam en het regelnummer, bijv.
App.jsx:12. Daar zit de fout (of net een regel erboven) - Zoek je foutmelding hieronder op
Push geweigerd
! [rejected] main -> main (fetch first)
error: failed to push some refs
Wat betekent het? Er staat nieuw werk op GitHub dat jij nog niet hebt (een teamgenoot heeft gepusht).
Eerst pullen, dan pushen:
git pull
git push
Desktop: klik op Pull origin, daarna op Push origin.
not a git repository
fatal: not a git repository (or any of the parent directories): .git
Wat betekent het? Je terminal staat niet in je projectmap.
# Waar ben ik?
pwd
# Ga naar je projectmap
cd Documents/GitHub/mijn-project
Tip: in GitHub Desktop: Repository → Open in Terminal. Dan sta je meteen goed.
Local changes would be overwritten
error: Your local changes to the following files would be overwritten by merge:
index.html
Please commit your changes or stash them before you merge.
Wat betekent het? Je hebt wijzigingen die nog niet gecommit zijn, en de pull zou ze overschrijven.
Commit eerst je werk, en pull dan:
git add .
git commit -m "feat: navbar aangepast"
git pull
no upstream branch
fatal: The current branch feature/navbar has no upstream branch.
Wat betekent het? Je branch staat nog niet op GitHub. De eerste keer moet je vertellen waar hij heen moet.
git push -u origin feature/navbar
Desktop: klik op Publish branch.
Merge conflict
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
Wat betekent het? Jij en een teamgenoot hebben dezelfde regel aangepast. Git wil dat jij kiest.
Zie Merge Conflicts voor een stap-voor-stap uitleg.
Permission denied
remote: Permission to team/project.git denied to jouwnaam.
fatal: unable to access 'https://github.com/team/project.git/': The requested URL returned error: 403
Wat betekent het? Je hebt geen schrijfrechten op deze repo.
- Teamproject? Vraag de eigenaar je toe te voegen: Settings → Collaborators. Accepteer daarna de uitnodiging in je mail
- Repo van de docent? Dan moet je eerst forken
- Verkeerd account? Log opnieuw in:
gh auth login
src refspec main does not match any
error: src refspec main does not match any
Wat betekent het? Je probeert main te pushen, maar die bestaat nog niet. Meestal heb je nog geen commit gemaakt.
git add .
git commit -m "chore: eerste commit"
git push -u origin main
Heet je branch master? Check met git branch.
destination path already exists
fatal: destination path 'project' already exists and is not an empty directory.
Wat betekent het? Er staat al een map met die naam waar je wilt clonen.
- Heb je hem al eerder gecloned? Ga dan gewoon die map in:
cd projecten doegit pull - Of clone op een andere plek, of geef een andere naam:
git clone url project-2
Vast in een raar scherm (Vim)
Please enter a commit message to explain why this merge is necessary,
~
~
~
Wat betekent het? Git heeft een teksteditor (Vim) geopend voor een commit message. Iedereen raakt hier een keer in vast.
- Druk op
Esc - Typ
:wq(opslaan en afsluiten) - Druk op
Enter
Liever VS Code als editor?
git config --global core.editor "code --wait"