When you buy a car or a bicycle, you first adjust the seat position and saddle height to suit your body size. It is the same with git configuration.
In this article, I will share the git setup I use all the time.
git config --global user.name "<name>" && \ git config --global user.email "<email>"
<name>with my name and
<email>with my mail address.
git config --global alias.co checkout git config --global alias.st status git config --global alias.br branch
git config --global core.excludesfile ~/.gitignore_global
- This allows you to put your own specific ignore settings in
~/.gitignore_globalin addition to the
.gitignorefor each project, which will be applied to all git operations across all projects.
git config --global push.default simple
git config --global pull.rebase true
- This prevents unintentional creation of a merge commit if the branch being pulled has been modified locally.
git config --global fetch.prune true
- This will remove local branches that were deleted remotely when
git pullwas performed.
git config --global core.pager 'less -x4'
- In this example, the pager (
lesscommand) option specifies tab indent width as 4
git config --global core.editor 'nvim'
- I use several different text editors for different purposes, but I prefer to use
git config --global --add merge.ff false git config --global --add pull.ff only
- Fast-forward merging makes it difficult to follow the history of work on a branch. Therefore, avoid unintentional fast-forwards when merging.
- However, fast-forwarding is not a problem for
git pullcases in most cases 1, so we enforce fast-forwarding in the case of pulls.
- See also: gitのmerge --no-ff のススメ - Qiita
git config --global grep.lineNumber true
git config diff.wsErrorHighlight all
As mentioned in the comments, these are stored in
.gitconfig. And I have added these settings to the dotfiles repository.
Thanks to all who commented.
In my experience, this happens when you are temporarily changing code while reviewing a PullRequest created by someone else in your local environment. In that case, fast-forward is better because local changes are gathered at the top of the history, making it easier to work with when you finally undo the changes. ↩