Table of Contents
02 Configure
If you're using a GUI client, some of these settings may be done via its settings dialog.
Config Locations
Git checks 4 places for a configuration file, cascading settings which means that the more specific config files overwrite or extend settings from the more generic files (machine → global → local → worktree).
Machine or System
Your machine's system-wide configuration file.
-
Option:
--system
-
For writing: write to system-wide file.
-
For reading: read only from system-wide file.
Example Paths-
Windows:
<git-install-root>\mingw64\etc\gitconfig
-
Linux:
~etc/gitconfig
Global
Your user's global
.gitconfig
file.-
Option:
--global
-
For writing: write to global file.
-
For reading: read only from global file.
Example Paths-
Windows:
C:\Users\<username>\.gitconfig
-
Linux:
~/.gitconfig
Local
The local repo's config file.
-
Option:
--local
-
For writing: write to the repository file.
-
For reading: read only from repository file.
Example Paths-
Windows:
<git-repo>\.git\config
-
Linux:
<git-repo>/.git/config
Worktree
The config file for the git worktree (if configured).
-
Option:
--worktree
-
For writing: write to the repository file.
-
For reading: read only from repository file.
Example Paths-
Windows:
<git-repo>\.git\config.worktree
-
Linux:
<git-repo>/.git/config.worktree
If extensions.worktreeConfig is not enabled, this is the same as
--local
.Multiple Installations
You might end up with multiple system-wide configuration files, after installing multiple git instances. To show the configuration keys and values and where they origin from, use
git config --list --show-origin
E.g. when running this command in the git-for-windows git bash, you might see an origin like this
file:C:/Program Files/Git/etc/gitconfig core.symlinks=false
and when running it in the git bash from the git fork client, you might see an origin like this
file:C:/Users/admin/AppData/Local/Fork/gitInstance/2.45.2/etc/gitconfig core.symlinks=false
Basics
If you haven't been asked for your name and your email address during installation, you can manually set this information:
git config --global user.name "Your Name" git config --global user.email "your@email.address"
Example .gitconfig file
[user] name = Your Name email = your@email.address [core] excludesfile = /some/path/to/.gitignore_global filemode = false
Ignoring files
The
exludesfile
mentioned in the .gitconfig file (the global .gitignore file) defines which files to ignore (exclude from versioning) for all repositories on the computer its stored on. You can set the path of the global exludesfile to the actual user's home directory withgit config --global core.excludesfile '~/.gitignore'
Each repository and each directory in it can have its own .gitignore file.
Common .gitignore example
# Generic: Temporary Files and Logs *~ ._* .DS_Store Thumbs.db ~*.docx ~*.xlsx *.log*
Project-specific .gitignore example
# LabVIEW Metadata *.aliases *.lvlps .cache/ # LabVIEW Binaries/Builds artifacts/ builds/ *.lvlibp
Windows Specifics
If you're using msysgit on Windows:
-
the machine's system
.gitconfig
file resides at%PROGRAMFILES(X86)%\Git\etc\gitconfig
. -
your user
~/.gitconfig
file resides at your%HOMEPATH%
Use
echo %PROGRAMFILES(X86)%
andecho %HOMEPATH%
from a Windows command prompt to find the specific locations.Global .gitignore file
Set the global .gitignore file location to
C:/users/{myusername}/.gitignore
:git config --global core.excludesfile "%USERPROFILE%\.gitignore"
The above command will only set the location of the ignore file that git will use. The file has to still be manually created in that location and populated with the ignore list.
Environment Variables
Open up My Computer → Advanced System Settings → Environment Variables. Then:
-
Add the git binary path (eg
C:\Program Files (X86)\Git\bin
) to thePATH
environment variable -
Add
msys
to theTERM
environment variable
File Permissions
If your repository is on a filesystem whose executable bits are unreliable (like FAT), git should be configured to ignore differences in file modes recorded in the index and the file mode on the filesystem if they differ only on executable bit:
git config --local core.filemode false
and/or
git config --global core.filemode false
Long Paths
Due to a Windows API limitation of file paths having 260 or fewer characters, Git checkouts fail on Windows with “Filename too long error: unable to create file” errors if a path is longer than the 260 characters.
To resolve this issue, please run the following command from GitBash or the Git CMD prompt:
git config --system core.longpaths true
Merge vs Rebase
If you have divergent branches, git has different ways of reconciling them. You can learn more about this topic in the great Atlassian Tutorials.
Merge
git config --global pull.rebase false
Rebase
git config --global pull.rebase true
Fast-Forward
git config --global pull.ff only
kb/scc/git/config.txt · Last modified: 2024/09/30 08:44 by alexander.elbert
-
-
-
-