Git: hoe haal ik of zie ik remote branch? Stuur local branch remote?
(in de reeks Git…)
Zien
Online (in de web interface) zie ik de branches:
- master
- test
- issue1
Maar lokaal zie ik alleen mijn eigen master (sic!):
git branch -l
* master
Ook na een git fetch blijft dat zo.
Git fetch heeft een standaardgedrag of volgt instellingen, maar je kan meer specifiek git fetch origin doen:
~/Git/TrypoPrj/TrypoPrj> git fetch origin
~/Git/TrypoPrj/TrypoPrj> git branch -l
* master
Bovendien moet je eigenlijk –list gebruiken (-l dient om een reflog aan te maken), en toont git branch –list enkel de lokale branches. Maar
git branch -r
origin/HEAD -> origin/master
origin/feat-01
origin/master
origin/test
toont de remote, of wil je alles:
git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/feat-01
remotes/origin/master
remotes/origin/test
met extra info als laatste commit message:
git branch -v -a
* master 8ab6216 [ahead 1] remove .directory from tracked files
remotes/origin/HEAD -> origin/master
remotes/origin/feat01 2bbd368 Complete changes.txt with done work
remotes/origin/master de381ad Resolve merge conflict by combine and reorder lines in changes.txt
Afhalen
Als je een branch van remote wil halen kan je die opgeven
git fetch origin
of
git fetch origin branch-naam
Daarna bv merge in je eigen (bv master) en commit:
git merge origin/branch-naam
git commit ...
Of:
– check met git branch -la
– indien ok, git checkout WantedBranch
(gewoon met de naam, paar letters en gebruik TAB om aan te vullen)
Reaktie:
Branch WantedBranch set up to track remote branch WantedBranch from origin.
Switched to a new branch 'WantedBranch'
upd 2020-11-18
Een lokale branch ook remote maken
Situatie: ik heb een lokale “develop” branch en wil iemand mee laten ontwikkelen (of zelf vanop een andere plaats/toestel).
Er is een master branch, en de andere gebruiker ziet die:
De andere gebruiker heeft alleen de master:
git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
.
git pull
Already up to date.
Ik heb die ook, plus een develop, waarin ik aktief ben.
cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git status
On branch develop
nothing to commit, working tree clean
cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git push
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git branch -r --list
origin/master
cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git push --set-upstream origin develop
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for develop, visit:
remote: https://gitlab.com/cybrarian.copyleft/ControlPanel/-/merge_requests/new?merge_request%5Bsource_branch%5D=develop
remote:
To gitlab.com:cybrarian.copyleft/ControlPanel.git
* [new branch] develop -> develop
Branch develop set up to track remote branch develop from origin.
Nu kan de andere gebruiker:
.
git pull
From gitlab.com:cybrarian.copyleft/ControlPanel
* [new branch] develop -> origin/develop
Already up to date.
De andere gebruiker kan nu ook mee aan de slag…
(mits hij de juiste rechten heeft – bv gitlab “maintainer”)
(Reeks Git – handboek (nl) – commando’s vb – branch, merge – branch zoeken/datum – stash – GitLab vb – SourceForge vb – git en gambas)