296 lines
8.2 KiB
Org Mode
296 lines
8.2 KiB
Org Mode
# -*- indent-tabs-mode: t; -*-
|
|
#+title: Git
|
|
#+setupfile: headers
|
|
#+PROPERTY: header-args :exports code :tangle no
|
|
#+PROPERTY: header-args:conf-unix :mkdirp yes :tangle ~/.config/git/config :exports code :noweb yes
|
|
|
|
* Git
|
|
** Basic configuration
|
|
#+begin_src conf-unix
|
|
# -*- indent-tabs-mode: t; -*-
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[user]
|
|
email = lucien@phundrak.com
|
|
name = Lucien Cartier-Tilet
|
|
signingkey = BD7789E705CB8DCA
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[core]
|
|
editor = emacsclient -c -a emacs
|
|
whitespace = fix,-indent-with-non-tab,trailing-space
|
|
excludesfile = /home/phundrak/.gitignore_global
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[pull]
|
|
rebase = true
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[init]
|
|
defaultBranch = main
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[color]
|
|
ui = auto
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[web]
|
|
browser = zen-browser
|
|
#+end_src
|
|
|
|
** Aliases
|
|
#+name: git-add-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+------------------------------------------------|
|
|
| =a= | =add --all= |
|
|
| =aca= | =!git add --all && git commit --amend= |
|
|
| =acan= | =!git add --all && git commit --amend --no-edit= |
|
|
|
|
#+name: abbrev-gen
|
|
#+begin_src emacs-lisp :tangle no :exports none :var abbrevs=git-push-abbrev :wrap "src conf-unix :tangle no"
|
|
(mapconcat (lambda (abbreviation)
|
|
(replace-regexp-in-string
|
|
(concat (regexp-quote "\\vert") (rx (? "{}")))
|
|
"|"
|
|
(concat "\t"
|
|
(string-replace "=" "" (car abbreviation))
|
|
" = "
|
|
(string-replace "=" "" (cadr abbreviation)))))
|
|
abbrevs
|
|
"\n")
|
|
#+end_src
|
|
|
|
#+RESULTS: abbrev-gen
|
|
#+begin_src conf-unix :tangle no
|
|
ps = push
|
|
psf = push --force-with-lease
|
|
pso = push origin
|
|
psfo = push --force-with-lease origin
|
|
pushall = !git remote | xargs -L1 git push
|
|
psl = !git remote | xargs -L1 git push
|
|
pullall = !git remote | xargs -L1 git pull
|
|
pll = !git remote | xargs -L1 git pull
|
|
#+end_src
|
|
|
|
#+name: git-branch-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+------------|
|
|
| =b= | =branch= |
|
|
| =bd= | =branch -d= |
|
|
| =bdd= | =branch -D= |
|
|
|
|
#+name: git-commit-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+----------------------|
|
|
| =c= | =commit -S= |
|
|
| =ca= | =commit -Sa= |
|
|
| =can= | =commit -Sa --no-edit= |
|
|
| =cm= | =commit -Sm= |
|
|
| =cam= | =commit -Sam= |
|
|
|
|
#+name: git-checkout-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+------------------|
|
|
| =co= | =checkout= |
|
|
| =cob= | =checkout -b= |
|
|
| =cod= | =checkout develop= |
|
|
|
|
#+name: git-clone-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+-----------------|
|
|
| =cl= | =clone= |
|
|
| =cl1= | =clone --depth 1= |
|
|
|
|
#+name: git-fetch-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+---------------|
|
|
| =f= | =fetch= |
|
|
| =fp= | =fetch --prune= |
|
|
|
|
#+name: git-push-abbrev
|
|
| 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= |
|
|
|
|
#+name: git-pull-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+---------------|
|
|
| =pl= | =pull= |
|
|
| =pb= | =pull --rebase= |
|
|
|
|
#+name: git-rebase-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+-------------------|
|
|
| =r= | =rebase= |
|
|
| =ra= | =rebase --abort= |
|
|
| =rc= | =rebase --continue= |
|
|
| =rd= | =rebase develop= |
|
|
| =ri= | =rebase -i= |
|
|
|
|
#+name: git-rm-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+------------|
|
|
| =rmf= | =rm -f= |
|
|
| =rmd= | =rm -r= |
|
|
| =rmdf= | =rm -rf= |
|
|
|
|
#+name: git-submodule-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+-------------------------------------|
|
|
| =sm= | =submodule= |
|
|
| =sms= | =submodule status= |
|
|
| =sma= | =submodule add= |
|
|
| =smu= | =submodule update= |
|
|
| =smui= | =submodule update --init= |
|
|
| =smuir= | =submodule update --init --recursive= |
|
|
|
|
#+name: git-stash-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+-------------|
|
|
| =st= | =stash= |
|
|
| =stc= | =stash clear= |
|
|
| =stp= | =stash pop= |
|
|
| =stw= | =stash show= |
|
|
|
|
#+name: git-unstage-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+------------|
|
|
| =u= | =reset --= |
|
|
| =unstage= | =reset --= |
|
|
|
|
#+name: git-single-abbrev
|
|
| abbreviation | equivalent |
|
|
|--------------+----------------------------------|
|
|
| =d= | =diff -w= |
|
|
| =l= | =log --oneline --graph --decorate= |
|
|
| =s= | =status= |
|
|
| =staged= | =diff --cached= |
|
|
| =upstream= | =!git push -u origin HEAD= |
|
|
|
|
#+RESULTS:
|
|
: a = add --all
|
|
: aca = !git add --all && git commit --amend
|
|
: acan = !git add --all && git commit --amend --no-edit
|
|
|
|
#+begin_src conf-unix
|
|
[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)>>
|
|
#+end_src
|
|
|
|
** Tools
|
|
*** Sendemail
|
|
#+begin_src conf-unix
|
|
[sendemail]
|
|
smtpserver = mail.phundrak.com
|
|
smtpuser = lucien@phundrak.com
|
|
smtpencryption = tls
|
|
smtpserverport = 587
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[credentials "smtp://lucien@phundrak.com@mail.phundrak.com:587"]
|
|
helper = "secret-tool lookup password email_lucien-phundrak-com"
|
|
#+end_src
|
|
|
|
*** Magit
|
|
#+begin_src conf-unix
|
|
[magithub]
|
|
online = true
|
|
[magithub "status"]
|
|
includeStatusHeader = true
|
|
includePullRequestsSection = true
|
|
includeIssuesSection = true
|
|
#+end_src
|
|
|
|
*** GPG
|
|
#+begin_src conf-unix
|
|
[gpg]
|
|
program = gpg2
|
|
[commit]
|
|
gpgsign = true
|
|
#+end_src
|
|
|
|
*** Merge
|
|
#+begin_src conf-unix
|
|
[merge]
|
|
tool = ediff
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[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\\\"))\"
|
|
#+end_src
|
|
|
|
*** Pager
|
|
#+begin_src conf-unix
|
|
[pager]
|
|
diff = delta
|
|
log = delta
|
|
reflog = delta
|
|
show = delta
|
|
#+end_src
|
|
|
|
*** Delta
|
|
#+begin_src conf-unix
|
|
[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
|
|
#+end_src
|
|
|
|
*** Git forges
|
|
#+begin_src conf-unix
|
|
[github]
|
|
user = phundrak
|
|
#+end_src
|
|
|
|
#+begin_src conf-unix
|
|
[url "https://phundrak@github.com"]
|
|
insteadOf = https://github.com
|
|
|
|
[url "https://phundrak@labs.phundrak.com"]
|
|
insteadOf = https://labs.phundrak.com
|
|
#+end_src
|
|
|
|
*** LFS
|
|
#+begin_src conf-unix
|
|
[filter "lfs"]
|
|
required = true
|
|
clean = git-lfs clean -- %f
|
|
smudge = git-lfs smudge -- %f
|
|
process = git-lfs filter-process
|
|
#+end_src
|