13/11/2018

Git: hoe haal ik of zie ik remote branch? Stuur local branch remote?

Filed under: — cybrarian @ 1:16 pm

(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”)

Git ingore negeert opgegeven bestand niet

Filed under: — cybrarian @ 10:47 am

(in de reeks Git…)

Hoewel ik .settings heb toegevoegd tot gitignore, blijft het af en toe opduiken als gewijzigd bestand, klaar om mee te committen. Ik begrijp niet of het komt door merge met andere medewerkers die misschien een andere instelling hebben (hoewel ik dacht dat die lokaal was).

Oorzaak is bv dat het bestand oorspronkelijk niet in gitignore zat, en er pas later is aan toegevoeg, toen het al getracked werd. En .gitignore werkt alleen voor “untracked” files (voor nieuwe bestanden dus).

Er is een extraatje nodig (how to make git forget..):

git update-index --assume-unchanged

git update-index --assume-unchanged .settings

Je krijgt geen feedback na dit commando.

Powered by WordPress