| Home | Techniek | Keywords


Git

Branches

Branch maken van tag

git checkout -b <nieuwnaam> <bestaande-tag>

Clone met fork

Werken met een git repo waar je niet direct naar mag pushen, maar wel naar de fork:

Iets toevoegen aan voorgaande commit

  • git add .

  • git commit --amend

Mocht de commit al gepushed zijn, dan moet de volgende push met -f

Cherry Pick

Maak veel aparte commits, dat maakt het cherry picken een stuk makkelijker.

Er is een aanpassing gedaan in een aparte branch. Daarvan is weer een release gemaakt. Die release tag moet weer terug naar de master.

  • git checkout master

  • zoek de commits die je wilt hebben (bv in gitlab)

  • git cherry-pick 00d812..db2 13644d…​b9c (maar dan met de hele hashes)

Als je een verkeerde commit hebt gedaan en je wilt daar de pom.xml niet van meenmemen:

  • git reset pom.xml

  • git checkout pom.xml

Tenslotte kan de boel gecommit worden:

  • git commit

Oeps, oude commit was fout

Stel dat een commit fout was die niet de laatste was. Hoe pas je dat aan.

Tel in git log de hoeveelste commit dit was.

Doe git rebase -i HEAD~5 en verander de aan te passen commit van pick in edit.

Doe de veranderingen en ga weer met git aan de gang:

  • git add .

  • git commit --amend

  • git rebase --continue

  • git push --force

Die laatste --force is natuurlijk alleen nodig als de oude commits al remote stonden.

Andere fork pulllen

git remote add fork-x git@git02.example.org:andere.fork/derepo.git

git pull fork-x

git checkout BRNC-1507

Nu is het probleem: hoe krijg je dit weer in je eigen repo…​

Mergen naar de pilot of master branch

Ga naar je feature branche:

git checkout BRNC-1507

Maak een tijdelijke branch aan:

git checkout -b BRNC-1507-TMP

Dan een rebase:

git rebase pilot

Ervan uitgaande dat er geen conflicten zijn:

git checkout pilot

git merge BRNC-1507-TMP

en tenslotte:

git push

Als je de tijdelijke branch wilt verwijderen:

git branch -D BRNC-1507-TMP

Met een hoofdletter D, er is nog geen push gedaan naar de fork.

Submodules

Als er een project is waarin een git submodule zit, is dit als volgt te activeren:

git submodule init

git submodule update

Push van bepaalde commit

Enkel een bepaalde commit pushen, maar niet je laatste:

git push origin PURP-790~2:PURP-790 -f