--- /dev/null
+# Git advice
+
+## Never use `git commit -m`, use `git commit -v`
+
+Configure your system so that `git commit` opens your preferred editor.
+
+With `git commit -v` you can see your commit diff while writing your commit message.
+This helps you review that your commit is correct and write a better commit message.
+
+## Use a global gitignore
+
+See <https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration.html#_core_excludesfile>.
+
+I recommend that the `.gitignore` in a Git repository should only include files that the "supported" procedures for working of your repository generate.
+For example, `.gitignore` should exclude files generated by running or compiling the project.
+
+If your editor or operating system generates files in the repository, I suggest those are not excluded by the `.gitignore` in the repository, but on your personal global gitignore.
+
+This is more efficient:
+
+* You only have to add exclusions that you need once.
+* The project `.gitignore` is smaller and requires less mental overhead to maintain.
+
+## Use the modern Git commands (or teach them)
+
+Particularly, `git checkout` has many functionalities that now can be handled by more focused commands like `git switch` and `git reset`.
+
+If you have too much muscle memory and are used to them, then consider learning them only to teach other people so that they start with the safer commands.
+
+Many Git commands print suggestions that use the newer commands.