cd /news/developer-tools/sample-of-git-config-file-example-gi… · home topics developer-tools article
[ARTICLE · art-9686] src=gist.github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Sample of git config file (Example .gitconfig) (Place them in $XDG_CONFIG_HOME/git)

This article provides a sample `.gitconfig` file, which is a configuration file for Git that should be placed in the `$XDG_CONFIG_HOME/git` directory. The example file includes user identity settings, core preferences like editor and pager, and extensive configurations for branches, diffs, aliases, and tools such as Delta for enhanced diff output. It also demonstrates settings for remotes, rebasing, pruning, and Git LFS integration.

read7 min views15 publishedMay 24, 2011

config

  This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

Show hidden characters

[user] name = Pavan Kumar Sunkara

email = pavan.sss1991@gmail.com

username = pksunkara

[core] editor = nvim

whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol
pager = delta

[column] ui = auto

[branch]

	sort = -committerdate

[tag]

	sort = version:refname

[init]
defaultBranch = master

[checkout] defaultRemote = origin

[rerere] enabled = 1

autoupdate = 1

[diff] algorithm = histogram

colorMoved = plain

renames = true

tool = nvimdiff

[difftool] prompt = false

[push] autoSetupRemote = true

followTags = true

[fetch] prune = true

pruneTags = true

all = true

[rebase] autoSquash = true

updateRefs = true

[color] ui = auto

[color "branch"] current = yellow bold

local = green bold

remote = cyan bold

[color "diff"] meta = yellow bold

frag = magenta bold

old = red bold


new = green bold
whitespace = red reverse

[color "status"] added = green bold

changed = yellow bold

untracked = red bold

[sendemail] smtpencryption = tls

smtpserver = smtp.gmail.com

smtpuser = pavan.sss1991@gmail.com

smtppass = password

smtpserverport = 587
[web]

	browser = google-chrome

[instaweb]

	httpd = apache2 -f

[delta]

	features = line-numbers decorations

	line-numbers = true

[delta "decorations"]

	minus-style = red bold normal

	plus-style = green bold normal

	minus-emph-style = white bold red

	minus-non-emph-style = red bold normal

	plus-emph-style = white bold green

	plus-non-emph-style = green bold normal

	file-style = yellow bold none

	file-decoration-style = yellow box

	hunk-header-style = magenta bold

	hunk-header-decoration-style = magenta box

	minus-empty-line-marker-style = normal normal

	plus-empty-line-marker-style = normal normal

	line-numbers-right-format = "{np:^4}│ "

[trim]
bases = master,main
	protected = *production

[sequence]

	editor = interactive-rebase-tool

[filter "lfs"]

	clean = git-lfs clean -- %f

	smudge = git-lfs smudge -- %f

	process = git-lfs filter-process
required = true
[alias]

	a = add --all

	ai = add -i
#############

ap = apply
	as = apply --stat

	ac = apply --check
#############
	ama = am --abort

	amr = am --resolved

	ams = am --skip
#############

b = branch
	ba = branch -a

	bd = branch -d

	bdd = branch -D

	br = branch -r

	bc = rev-parse --abbrev-ref HEAD

	bu = !git rev-parse --abbrev-ref --symbolic-full-name "@{u}"

	bs = !git-branch-status
bt = !git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'

#############
	bl = blame -w

	bll = blame -w -L

	blm = blame -w -C -C -C

	blml = blame -w -C -C -C -L
#############

c = commit
	ca = commit -a

	cm = commit -m

	cam = commit -am

	cem = commit --allow-empty -m

	cd = commit --amend

	cad = commit -a --amend

	ced = commit --allow-empty --amend
#############

cl = clone
	cld = clone --depth 1

	clg = !sh -c 'git clone https://github.com/$1' -

	clgp = !sh -c 'git clone git@github.com:$1' -

	clsp = !sh -c 'git clone git@git.sr.ht:~$1' -

	clgu = !sh -c 'git clone git@github.com:$(git config --get user.username)/$1' -

	clsu = !sh -c 'git clone git@git.sr.ht:~$(git config --get user.username)/$1' -
#############
	cp = cherry-pick

	cpa = cherry-pick --abort

	cpc = cherry-pick --continue
#############

d = diff
	dc = diff --cached

	dk = diff --check

	dkc = diff --cached --check
dt = difftool
	dtc = difftool --cached

	dw = diff --word-diff
#############

f = fetch

fo = fetch origin

fu = fetch upstream

#############


fp = format-patch
#############

fk = fsck

#############


g = grep -p
#############
	l = log --oneline

	lg = log --oneline --graph --decorate

	ll = log -L

	lf = log -S
#############
	ls = ls-files

	lsf = !git ls-files | grep -i
#############

m = merge
	ma = merge --abort

	mc = merge --continue

	ms = merge --skip
#############

o = checkout
	om = !git checkout $(git bt)

	ob = checkout -b
#############


pr = prune -v
#############

ps = push
	psf = push --force-with-lease

	psu = push -u

	pst = push --tags
#############

pso = push origin
	psao = push --all origin

	psfo = push --force-with-lease origin

	psuo = push -u origin
#############
	psom = !git push origin $(git bt)

	psaom = !git push --all origin $(git bt)

	psfom = !git push --force-with-lease origin $(git bt)

	psuom = !git push -u origin $(git bt)

	psoc = !git push origin $(git bc)

	psaoc = !git push --all origin $(git bc)

	psfoc = !git push --force-with-lease origin $(git bc)

	psuoc = !git push -u origin $(git bc)

	psdc = !git push origin :$(git bc)
#############

pl = pull


pb = pull --rebase
#############

plo = pull origin
	pbo = pull --rebase origin

	plom = !git pull origin $(git bt)

	ploc = !git pull origin $(git bc)

	pbom = !git pull --rebase origin $(git bt)

	pboc = !git pull --rebase origin $(git bc)
#############

plu = pull upstream
	plum = !git pull upstream $(git bt)

	pluc = !git pull upstream $(git bc)

	pbum = !git pull --rebase upstream $(git bt)

	pbuc = !git pull --rebase upstream $(git bc)
#############

rb = rebase
	rba = rebase --abort

	rbc = rebase --continue

	rbi = rebase --interactive

	rbs = rebase --skip
#############

re = reset

rh = reset HEAD
	reh = reset --hard

	rem = reset --mixed

	res = reset --soft

	rehh = reset --hard HEAD

	remh = reset --mixed HEAD

	resh = reset --soft HEAD

	rehom = !git reset --hard origin/$(git bt)
#############

r = remote

ra = remote add

rr = remote rm


rv = remote -v
rn = remote rename

rp = remote prune

rs = remote show

rao = remote add origin

rau = remote add upstream

rro = remote remove origin

rru = remote remove upstream

rso = remote show origin

rsu = remote show upstream

rpo = remote prune origin

rpu = remote prune upstream

#############
	rmf = rm -f

	rmrf = rm -r -f
#############

s = status


sb = status -s -b
#############

sa = stash apply

sc = stash clear

sd = stash drop

sl = stash list

sp = stash pop

ss = stash save


ssk = stash save -k
sw = stash show
	st = !git stash list | wc -l 2>/dev/null | grep -oEi '[0-9][0-9]*'

	snap = !git stash save 'snapshot: $(date)' && git stash apply 'stash@{0}'
#############

t = tag


td = tag -d
#############

w = show

#############

wa = worktree add

wl = worktree list

wp = worktree prune

wr = worktree remove

wx = worktree repair

#############
	subadd = !sh -c 'git submodule add https://github.com/$1 $2/$(basename $1)' -

	subrm = !sh -c 'git submodule deinit -f -- $1 && rm -rf .git/modules/$1 && git rm -f $1' -

	subup = submodule update --init --recursive

	subpull = !git submodule foreach 'git pull --tags -f origin $(git bt)'

	subsync = submodule sync --recursive
#############
	assume = update-index --assume-unchanged

	unassume = update-index --no-assume-unchanged

	assumed = !git ls -v | grep ^h | cut -c 3-
unassumeall = !git assumed | xargs git unassume


assumeall = !git status -s | awk {'print $2'} | xargs git assume
#############

bump = !sh -c 'git commit -am \"Version bump v$1\" && git psuoc && git release $1' -
	release = !sh -c 'git tag v$1 && git pst' -

	unrelease = !sh -c 'git tag -d v$1 && git pso :v$1' -
#############
	behind = !git rev-list --left-only --count $(git bu)...HEAD

	ahead = !git rev-list --right-only --count $(git bu)...HEAD
#############

merged = !sh -c 'git om && git plom && git trim'
	ignore = !sh -c 'echo "$1" >> .git/info/exclude' -

	aliases = !git config -l | grep alias | cut -c 7-

	bare = !sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' -

	whois = !sh -c 'git log -i -1 --author=\"$1\" --pretty=\"format:%an <%ae>\"' -

	serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git

	ours = "!f() { git checkout --ours $@ && git add $@; }; f"

	theirs = "!f() { git checkout --theirs $@ && git add $@; }; f"

	subrepo = !sh -c 'git filter-branch --prune-empty --subdirectory-filter $1 $(git bt)' -

	human = name-rev --name-only --refs=refs/heads/*

ignore

  This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

Show hidden characters

###################

*.com

*.class

*.dll

*.exe

*.o

*.so

###################

*.swp

*.swo

*~

############

*.7z

*.dmg

*.gz

*.iso

*.jar

*.rar

*.tar

*.zip

######################

*.log

######################

.DS_Store*

ehthumbs.db

Icon?

Thumbs.db

################

.vscode

.zed

── more in #developer-tools 4 stories · sorted by recency
── more on @pavan kumar sunkara 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/sample-of-git-config…] indexed:0 read:7min 2011-05-24 ·