gitconfig 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. [user]
  2. name = Fabian Peter Hammerle
  3. email = fabian@hammerle.me
  4. signingkey = 8D2902FE7DF47DDEDA2802F9456B9A0399A5DA2F
  5. [core]
  6. excludesfile = ~/.config/git/gitignore
  7. # hooksPath = ~/.config/git/hooks
  8. [interactive]
  9. singleKey = true
  10. [init]
  11. defaultBranch = main
  12. [status]
  13. branch = true
  14. short = true
  15. showUntrackedFiles = normal
  16. [grep]
  17. lineNumber = true
  18. [diff]
  19. tool = vimdiff
  20. [diff "cat"]
  21. textconv = cat
  22. [diff "db_dump"]
  23. textconv = db_dump
  24. [diff "gpg-show-keys"]
  25. textconv = gpg --show-keys --with-subkey-fingerprint --with-keygrip --
  26. [diff "gpg-verify"]
  27. textconv = gpg --verify --output=- 2>&1 --
  28. [diff "hexdump"]
  29. textconv = od -t x1z --
  30. [diff "yq"]
  31. textconv = yq --yaml-output --indentless-lists . --
  32. [diff "openssl-x509-text"]
  33. textconv = "sh -c 'while openssl x509 -noout -text; do echo; done' <\"$1\" 2>&1"
  34. [diff "pandas-parquet-to-json"]
  35. # g+r for podman container
  36. # https://git.hammerle.me/fphammerle/setup/commit/9c7167b9a9f7e5829d1fba5006b104ab72f6d13a
  37. textconv = "chmod g+r \"$1\" && env --debug -- pandas-parquet-to-json"
  38. [diff "pgpdump"]
  39. textconv = pgpdump
  40. [diff "xzcat"]
  41. textconv = xzcat
  42. [diff "zcat"]
  43. textconv = zcat
  44. [filter "ipynb"]
  45. clean = jq --indent 1 '.cells[].id? = null | (.cells[].outputs[].data[\"application/vnd.jupyter.widget-view+json\"]|objects|select(has(\"model_id\"))).model_id |= null'
  46. [filter "lfs"]
  47. clean = git-lfs clean -- %f
  48. smudge = git-lfs smudge -- %f
  49. process = git-lfs filter-process
  50. required = true
  51. [commit]
  52. gpgsign = true
  53. verbose = true
  54. [rebase]
  55. instructionFormat = %G? %s (%an <%ae>, %ai)
  56. autostash = true
  57. [push]
  58. default = current
  59. [url "git@git.hammerle.me:"]
  60. pushInsteadOf = https://git.hammerle.me/
  61. [url "git@github.com:"]
  62. pushInsteadOf = https://github.com/
  63. [tag]
  64. forceSignAnnotated = true
  65. [log]
  66. date = iso8601-strict
  67. [gcrypt]
  68. participants = 8D2902FE7DF47DDEDA2802F9456B9A0399A5DA2F
  69. publish-participants = false
  70. [annex]
  71. securehashesonly = true
  72. autocommit = false
  73. synccontent = true
  74. # copy instead of hard-linking when unlocking
  75. thin = false
  76. # assistant: do not auto delete unused files
  77. expireunused = false
  78. # fixes sync of repos inside encfs mounts
  79. ssh-options = -S~/.ssh/%r@%n:%p
  80. [alias]
  81. a = add
  82. c = commit
  83. # git curl-github-api /commits/master/statuses | jq '.[].state'
  84. curl-github-api = "!f() { path="$1"; shift; git github-repo-names | xargs -I{} --verbose curl --header 'Accept: application/vnd.github.v3+json' 'https://api.github.com/repos/{}'\"$path\" "$@"; }; f"
  85. # git curl-github-ref-status dev | jq '{state, statuses, commit_url}'
  86. curl-github-ref-status = "!f() { ref="$1"; shift; git curl-github-api "/commits/$ref/status" "$@"; }; f"
  87. d = diff
  88. f = fetch --prune
  89. github-repo-names = !git github-urls | grep --only-matching --perl-regexp 'github.com/\\K.+(?=\\.git)'
  90. github-urls = !git remote-urls | grep ^https://github.com/
  91. p = push --verbose
  92. remote-urls = !git remote | xargs -L1 git remote get-url
  93. s = status
  94. t = for-each-ref --sort taggerdate --format '%(taggerdate:iso) %(objectname) %(tag)' refs/tags
  95. tree = log --graph --format=format:'%C(red)%G?%C(reset) %C(yellow)%h%C(reset)%C(blue)%d%C(reset) %C(dim green)%ar%C(reset) %C(white)%s%C(reset) %C(dim cyan)(%an, %ai)%C(reset)' --all
  96. x = annex