|
43 | 43 | dsc = "-c delta.side-by-side=true dc"; |
44 | 44 | fixup = "commit --fixup"; |
45 | 45 | fi = "commit --fixup"; |
46 | | - l = "log --pretty=format:'%C(yellow)%h\ %C(green)%ad%Cred%d\ %Creset%s%Cblue\ [%an]' --date=relative -32"; |
47 | | - lg = "l --graph --boundary --cherry-mark"; |
48 | | - ld = "log --cherry --pretty=format:'%m\ %C(yellow)%h\ %C(green)%ad%Cred%d\ %Creset%s%Cblue\ [%an]' --date=relative -32"; |
49 | | - lp = "-c delta.side-by-side=true log --pretty=format:'%C(yellow)commit %h\ %C(green)%ad%Cred%d\ %Creset%s%Cblue\ [%an]' --date=relative -16 -p -- :^vendor :^go.mod :^go.sum"; # include "commit " for delta `n` navigation |
50 | | - new = "l @{u}.."; |
| 46 | + # base log |
| 47 | + log-pretty = "log --pretty=format:'%C(yellow)%h\ %C(green)%ad%Cred%d\ %C(reset)%s%C(blue)\ [%an]' --date=relative"; |
| 48 | + # verbose log, i.e. with cherry marks |
| 49 | + log-pretty-verbose = "log --cherry-mark --pretty=format:'%C(yellow)%h %C(cyan)%m %C(green)%ad%C(red)%d %C(reset)%s%C(blue) [%an]' --date=relative"; |
| 50 | + # aliases for use |
| 51 | + l = "!f() { |
| 52 | + if [ -z \"$1\" ]; then |
| 53 | + if [ \"$(git main)\" = \"$(git rev-parse --abbrev-ref HEAD)\" ]; then |
| 54 | + git log-pretty -32 |
| 55 | + else |
| 56 | + git log-pretty $(git main).. |
| 57 | + fi |
| 58 | + else |
| 59 | + git log-pretty $1 |
| 60 | + fi |
| 61 | + }; f"; |
| 62 | + lv = "!f() { |
| 63 | + if [ -z \"$1\" ]; then |
| 64 | + if [ \"$(git main)\" = \"$(git rev-parse --abbrev-ref HEAD)\" ]; then |
| 65 | + git log-pretty-verbose -32 |
| 66 | + else |
| 67 | + git log-pretty-verbose --no-merges $(git main)... |
| 68 | + fi |
| 69 | + else |
| 70 | + git log-pretty-verbose --no-merges $1 |
| 71 | + fi |
| 72 | + }; f"; |
| 73 | + lg = "!f() { |
| 74 | + if [ -z \"$1\" ]; then |
| 75 | + git log-pretty-verbose --graph --boundary --cherry-mark $(git main)... |
| 76 | + else |
| 77 | + git log-pretty-verbose --graph --boundary --cherry-mark $1 |
| 78 | + fi |
| 79 | + }; f"; |
| 80 | + new = "log-pretty @{u}..."; |
51 | 81 | p = "pull --prune --all --autostash"; |
52 | 82 | puf = "push --force-with-lease --force-if-includes"; |
53 | | - rb = "rebase --autostash --autosquash"; |
| 83 | + rb = "rebase"; |
54 | 84 | rba = "rebase --abort"; |
55 | 85 | rbc = "rebase --continue"; |
| 86 | + ours = "restore --ours"; |
| 87 | + theirs = "restore --theirs"; |
56 | 88 | s = "status --short"; |
57 | 89 | sh = "show --stat"; |
58 | 90 | sw = "switch"; |
59 | 91 |
|
60 | 92 | # repo path |
61 | 93 | root = "rev-parse --show-toplevel"; # print root |
62 | | - cr = "!f() {cd $(git rev-parse --show-toplevel)}"; # change to root |
| 94 | + cd = "!f() {cd $(git rev-parse --show-toplevel)}"; # change to root |
63 | 95 | exec = "!exec "; # make from wherever |
64 | 96 |
|
65 | 97 | # files from index or from commits |
|
75 | 107 | main = "!f() { git symbolic-ref refs/remotes/origin/HEAD --short | cut -d/ -f2; }; f"; |
76 | 108 |
|
77 | 109 | # fast ops on main/master |
78 | | - pm = "!f() { test $(git rev-parse --abbrev-ref HEAD) != $(git main) && git fetch origin $(git main):$(git main) || git p; }; f"; # pull main |
79 | | - bd = "!f() { |
80 | | - git pm || return; |
81 | | - for branch in $(git for-each-ref --format '%(refname:short)' refs/heads | grep -vE '^main$|^master$') |
82 | | - do |
83 | | - echo; |
84 | | - if git log --cherry --pretty=format:'%m\ %C(yellow)%h\ %C(green)%ad%Cred%d\ %Creset%s%Cblue\ [%an]' --date=relative $(git main)...$branch | grep --silent -E '^>'; |
85 | | - then |
86 | | - echo \"$branch is unmerged:\"; |
87 | | - git log --cherry --pretty=format:'%m\ %C(yellow)%h\ %C(green)%ad%Cred%d\ %Creset%s%Cblue\ [%an]' --date=relative $(git main)...$branch; |
88 | | - else |
89 | | - git branch -D $branch; |
90 | | - fi |
91 | | - done |
92 | | - }; f"; |
93 | | - rbmi = "!f() { git pm && git rb -i $(git main); }; f"; # rebase interactively on main |
94 | | - rbm = "!f() { git pm && git rb $(git main); }; f"; # rebase on main |
| 110 | + pull-main = "!f() { test $(git rev-parse --abbrev-ref HEAD) != $(git main) && git fetch origin $(git main):$(git main) || git p; }; f"; # pull main |
| 111 | + pm = "pull-main"; |
| 112 | + rbmi = "!f() { git pull-main && git rb -i $(git main); }; f"; # rebase interactively on main |
| 113 | + rbm = "!f() { git pull-main && git rb $(git main); }; f"; # rebase on main |
95 | 114 |
|
96 | 115 | # update PR with unstaged |
97 | 116 | rekt = "!f() { git a -u; git amend; git puf; }; f"; # add updates to amend commit and force push |
|
101 | 120 | "*.swp" |
102 | 121 | ]; |
103 | 122 | extraConfig = { |
| 123 | + advice = { |
| 124 | + skippedCherryPicks = false; |
| 125 | + }; |
104 | 126 | branch.sort = "-committerdate"; |
105 | 127 | commit.gpgsign = true; |
106 | 128 | core = { |
|
110 | 132 | gpg.format = "ssh"; |
111 | 133 | init.defaultBranch = "main"; |
112 | 134 | log.date = "local"; |
| 135 | + merge = { |
| 136 | + autostash = true; |
| 137 | + conflictStyle = "zdiff3"; |
| 138 | + }; |
113 | 139 | pull.rebase = true; |
114 | 140 | push = { |
115 | 141 | default = "current"; |
116 | 142 | autoSetupRemote = true; |
117 | 143 | }; |
118 | 144 | rebase = { |
| 145 | + stat = true; |
119 | 146 | autosquash = true; |
120 | 147 | autostash = true; |
121 | 148 | updateRefs = true; |
122 | 149 | }; |
123 | | - merge.autostash = true; |
124 | 150 | rerere.enabled = true; |
125 | 151 | tag.sort = "version:refname"; |
| 152 | + trim.confirm = false; |
126 | 153 | url."ssh://[email protected]/".insteadOf = "https://github.com/"; |
127 | 154 | user.signingkey = "~/.ssh/id_ed25519"; |
128 | 155 | }; |
|
0 commit comments