====== 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 ===== Merge ===== 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