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
+## Use gitignore properly
-See <https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration.html#_core_excludesfile>.
+See <https://git-scm.com/docs/gitignore>.
-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.
+Note that by default, Git defaults to `$XDG_CONFIG_HOME/git/ignore` or `$HOME/.config/git/ignore`.
## Use the modern Git commands (or teach them)
## Use a minimal gitignore file
-Keep editor-specific ignores in a personal `excludesfile`. Do not include patterns in gitignore which do not match anything generated by documented and supported development procedures.
+See <../git/git_advice.md#use-gitignore-properly>.
## Keep your code together
Use git submodules or similar mechanisms to refer to code you modify that must be kept external.
-Use git subrepo to publish parts of the repository outside the main repository if needed.
+Use [Josh](../git/combining_repos_with_josh_filter.md) to publish parts of the repository outside the main repository if needed.
# Support multiple modern versions of Python