config.phundrak.com/docs/git.org

8.2 KiB

Git

Git

Basic configuration

# -*- indent-tabs-mode: t; -*-
[user]
	email = lucien@phundrak.com
	name = Lucien Cartier-Tilet
	signingkey = BD7789E705CB8DCA
[core]
	editor = emacsclient -c -a emacs
	whitespace = fix,-indent-with-non-tab,trailing-space
	excludesfile = /home/phundrak/.gitignore_global
[pull]
	rebase = true
[init]
	defaultBranch = main
[color]
	ui = auto
[web]
	browser = zen-browser

Aliases

abbreviation equivalent
a add --all
aca !git add --all && git commit --amend
acan !git add --all && git commit --amend --no-edit
abbreviation equivalent
b branch
bd branch -d
bdd branch -D
abbreviation equivalent
c commit -S
ca commit -Sa
can commit -Sa --no-edit
cm commit -Sm
cam commit -Sam
abbreviation equivalent
co checkout
cob checkout -b
cod checkout develop
abbreviation equivalent
cl clone
cl1 clone --depth 1
abbreviation equivalent
f fetch
fp fetch --prune
abbreviation equivalent
ps push
psf push --force-with-lease
pso push origin
psfo push --force-with-lease origin
pushall !git remote \vert{} xargs -L1 git push
psl !git remote \vert{} xargs -L1 git push
pullall !git remote \vert{} xargs -L1 git pull
pll !git remote \vert{} xargs -L1 git pull
abbreviation equivalent
pl pull
pb pull --rebase
abbreviation equivalent
r rebase
ra rebase --abort
rc rebase --continue
rd rebase develop
ri rebase -i
abbreviation equivalent
rmf rm -f
rmd rm -r
rmdf rm -rf
abbreviation equivalent
sm submodule
sms submodule status
sma submodule add
smu submodule update
smui submodule update --init
smuir submodule update --init --recursive
abbreviation equivalent
st stash
stc stash clear
stp stash pop
stw stash show
abbreviation equivalent
u reset --
unstage reset --
abbreviation equivalent
d diff -w
l log --oneline --graph --decorate
s status
staged diff --cached
upstream !git push -u origin HEAD
      a = add --all
      aca = !git add --all && git commit --amend
      acan = !git add --all && git commit --amend --no-edit
[alias]
<<abbrev-gen(abbrevs=git-add-abbrev)>>
<<abbrev-gen(abbrevs=git-branch-abbrev)>>
<<abbrev-gen(abbrevs=git-commit-abbrev)>>
<<abbrev-gen(abbrevs=git-checkout-abbrev)>>
<<abbrev-gen(abbrevs=git-clone-abbrev)>>
<<abbrev-gen(abbrevs=git-fetch-abbrev)>>
<<abbrev-gen(abbrevs=git-push-abbrev)>>
<<abbrev-gen(abbrevs=git-pull-abbrev)>>
<<abbrev-gen(abbrevs=git-rebase-abbrev)>>
<<abbrev-gen(abbrevs=git-rm-abbrev)>>
<<abbrev-gen(abbrevs=git-submodule-abbrev)>>
<<abbrev-gen(abbrevs=git-stash-abbrev)>>
<<abbrev-gen(abbrevs=git-unstage-abbrev)>>
<<abbrev-gen(abbrevs=git-single-abbrev)>>

Tools

Sendemail

[sendemail]
	smtpserver = mail.phundrak.com
	smtpuser = lucien@phundrak.com
	smtpencryption = tls
	smtpserverport = 587
[credentials "smtp://lucien@phundrak.com@mail.phundrak.com:587"]
	helper = "secret-tool lookup password email_lucien-phundrak-com"

Magit

[magithub]
	online = true
[magithub "status"]
	includeStatusHeader = true
	includePullRequestsSection = true
	includeIssuesSection = true

GPG

[gpg]
	program = gpg2
[commit]
	gpgsign = true

Merge

[merge]
	tool = ediff
[mergetool.ediff]
	cmd = emacs --eval \" (progn (defun ediff-write-merge-buffer () (let ((file ediff-merge-store-file)) (set-buffer ediff-buffer-C) (write-region (point-min) (point-max) file) (message \\\"Merge buffer saved in: %s\\\" file) (set-buffer-modified-p nil) (sit-for 1))) (setq ediff-quit-hook 'kill-emacs ediff-quit-merge-hook 'ediff-write-merge-buffer) (ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$BASE\\\" nil \\\"$MERGED\\\"))\"

Pager

[pager]
	diff = delta
	log = delta
	reflog = delta
	show = delta

Delta

[delta]
	features = side-by-side line-numbers decorations
	whitespace-error-style = 22 reverse

[delta "decorations"]
	commit-decoration-style = bold yellow box ul
	file-style = bold yellow ul
	file-decoration-style = none

[interactive]
	diffFilter = delta --color-only

Git forges

[github]
	user = phundrak
[url "https://phundrak@github.com"]
	insteadOf = https://github.com

[url "https://phundrak@labs.phundrak.com"]
	insteadOf = https://labs.phundrak.com

LFS

[filter "lfs"]
	required = true
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process