Understanding and Configuring Git with gitconfig: Levels, User Identity, Editor, Commit Templates, and More
This guide explains Git's three-level gitconfig system (system, global, repo), shows how to set user name and email, configure the default editor, create commit message templates, manage global ignore files, and set up visual diff and merge tools using VS Code.
gitconfig file helps you configure many common Git behaviors, making your Git environment suit your personal preferences.
gitconfig's three-level configuration system
In a Git repository, .gitignore and .gitattributes belong to the third level of Git's three-level configuration system, used for configuring the current repository; the other two levels are global and system.
system
System-level configuration is stored on Windows under the Git installation directory (default: C:\Program Files\Git\mingw64\etc\gitconfig). Edit it with: git config --edit --system Note: Editing system-level configuration requires an elevated command prompt.
Global configuration is the per‑user file located in the user's home directory (default: C:\Users\{username}\.gitconfig). Edit it with: git config --edit --global Note: The settings you made in the Git installation chapter actually modify this file.
Repo‑level configuration resides in the repository root. Edit it after navigating to the repository directory: git config --edit The closer a configuration file is to the repository level, the higher its precedence.
Username and Email Address
These settings are required for committing code:
git config --global user.name "{Your Name}"
git config --global user.email {[email protected]}Git does not verify that your name and email match the remote server; they serve only as identifiers. For corporate repositories, use the corporate‑assigned email for easier identification.
Default Editor
Git defaults to vim, which is unfriendly for many Windows users. Change the default editor with: git config --global core.editor "code --wait" This sets Visual Studio Code as the editor; ensure the "code" command is available in your PATH.
Commit Message Template
A clear commit message improves team collaboration. Create a template file (e.g., .gitmessage.txt) with content like:
Subject line (try to keep under 50 characters)
Multi-line description of commit,
feel free to be detailed.
[Ticket: X]Configure Git to use this template:
git config --global commit.template c:\users\{username}\.gitmessage.txtExcluding Files
Use a global .gitignore to exclude files across all repositories, e.g., for macOS .DS_Store files:
*~
.*.swp
.DS_StoreThen set it globally:
git config --global core.excludesfile c:\users\{username}\.gitignore_globalExternal Diff and Merge Tools
Configure VS Code as the diff tool by editing the global config:
[diff]
tool = default-difftool
[difftool "default-difftool"]
cmd = code --wait --diff $LOCAL $REMOTERun diffs with: git difftool <commitid> <commitid> When conflicts occur, VS Code offers visual merge options such as "Accept Current Change", "Accept Incoming Change", "Accept Both Changes", and "Compare Changes".
Note: This guide does not cover every possible gitconfig option; refer to the official Git documentation for a complete list.
References:
Git Configuration Documentation
Using VS Code as Git's Default Editor
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
DevOps
Share premium content and events on trends, applications, and practices in development efficiency, AI and related technologies. The IDCF International DevOps Coach Federation trains end‑to‑end development‑efficiency talent, linking high‑performance organizations and individuals to achieve excellence.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
