lehrkraefte:blc:informatik:efi-2023:git:hello-world

Minimalbeispiel

mkdir blabla
cd blabla
git init .
echo "Hello world" > test.txt
git add test.txt
git commit -m 'proof of concept (poc)'
git checkout -b dev

Machen Sie dann folgende Änderungen und commiten Sie die Änderungen mit der entsprechenden Message:

Hello world!

Message important

Hello world!
Trying stuff...

Message Experimenting

Hello world!
Now working

Message Now it works.

Aber jetzt haben wir einen Punkt vergessen. Diesen noch einfügen und dann mit

git add test.txt
git commit --amend -m 'Now it really works.'
git log

Sie sehen, dass der Commit 'Now it works.' ersetzt wurde. Das ist nützlich für kleine bugfixes, die noch nirgends publiziert sind. Sind die commits einmal ge'push't (d.h. publiziert) sollten diese nicht mehr verändert werden.

git checkout main

Wichtigen Bug-fix einfügen:

Hello world
Wichtiger Bugfix

und commiten mit Message 'wichtiger bugfix':

git commit -am 'wichtiger bugfix'
git show-branch
git checkout main
git merge dev

Datei test.txt editieren, Konflikt von Hand lösen, dann mit Message 'manual merge' commiten.

Problem: Der dev-Branch enthält jetzt den wichtigen Bug-fix nicht.

Dazu könnte man einen neuen Branch starten und den dev-Branch vergessen:

git checkout main
git branch -d dev

So, und jetzt reparieren wir das ganze wieder. Suchen Sie sich die commit-ID (Hash) vom letzten commit auf dem (nicht mehr existierenden) dev-branch, checken diesen aus und legen den branch 'dev' wieder an.

git ref-log
git checkout xxxxxxxxx
git switch -c dev

Dann machen wir den merge rückgängig. Dazu suchen Sie die commit-ID (Hash) vom letzten commit vor dem Merge (dafür könnte wohl auch HEAD^ verwendet werden können (d.h. 1 commit davor, wobei es beim merge ja zwei parents gibt…))

git checkout main
git ref-log
git reset --hard xxxxxxxx
  • lehrkraefte/blc/informatik/efi-2023/git/hello-world.txt
  • Last modified: 2024/01/09 08:22
  • by Ivo Blöchliger