diff --git a/advanced.md b/advanced.md new file mode 100644 index 0000000000000000000000000000000000000000..fe0a6a367390db931bc83c5e9b24c35bcdf72e01 --- /dev/null +++ b/advanced.md @@ -0,0 +1,31 @@ +# git advanced -- how to maintain a comprehensible history + +- when projects get bigger +- show bad example with merge commits +- show git-flow being harmful +- show git-pretty + +Advanced git is not about edge use cases, it's all about keeping your history +comprehensible, i.e. understandable. + +## trunk based development + +- project history, e.g. via `gitk` or `git lol`, should resemble a **tree** +- for this section we're sticking to the tree metaphor +- long-lived branches basically **master** (and **releases**) +- long trunk of tree +- dead branches on lower trunk (old, unmaintained releases), which may also be + cut down in time if support is dropped +- only clean merges (could have been ff) + +## final chapter + +- consider like backup slides +- show goodies + +## resources + +- https://barro.github.io/2016/02/a-succesful-git-branching-model-considered-harmful/ +- https://stackoverflow.com/questions/14023648/why-does-my-git-history-look-like-a-christmas-tree +- https://i.stack.imgur.com/ZsXT6.png +- https://trunkbaseddevelopment.com diff --git a/img/git-merge-is-bad.png b/img/git-merge-is-bad.png new file mode 100644 index 0000000000000000000000000000000000000000..3d39aa9473218ada04c0158a2d94ee2e122e1a11 Binary files /dev/null and b/img/git-merge-is-bad.png differ