3 email = hassan@afify.dev
4 signingkey = E7855210AD9062A0
34 template = ~/.gitmessage
58 s = status --short --branch
60 remotes = remote -v # show remotes urls
64 chp = cherry-pick -e #hash..#otherhashrange # choose a commit from one branch and apply it onto another
65 show-unmerged-commits = cherry -v master #branch
66 merge-aboard = merge --abort
67 # show-unmerged-fullcommits = !git log $1 --not master --stat && echo
70 p = push github master
71 pushall = !git remote | xargs -L1 git push --all
72 show-unpushed-branches = log --branches --not --remotes --simplify-by-decoration --decorate --oneline
73 # show-unpushed-commits =
77 # df = difftool master..otherbr -- filename
80 c = commit -S # commit and sign
81 cedit = !git commit --amend && git push --force github master # edit last commit message
82 # commit_old = commit --date "Wed Feb 16 14:00 2020 +0100" -S
83 # git show commit:filename # show_file_old_commit
86 t = tag -a -s #tagname # create annotated tag
87 tlight = tag -s #tagname #commit_name # create lightweight tag
88 tc = !git tag -a -s v$(awk '/^VERSION/{print $NF}' config.mk) # new tag C
89 push-tag = push github #tagname
90 pushall-tags = push github --tags
91 fetch-tag = fetch --tags
92 delete-tag = tag --delete # tagname
93 delete-remote-tag = push --delete github # tagname
95 tlist = tag --list #"v2*"
97 tag-tobranch = checkout -b tag_temp_branch #tagname
100 l = log --all --pretty=format:"%C(#0080ff)%h\\ \\%C(#c0d6de)%s\\%C(#17b062)%d"
101 lgpg = log --all --pretty=format:"%C(#0080ff)%h\\ %C(#cd9a00)%G?\\ \\%C(#c0d6de)%s\\%C(#17b062)%d"
102 ll = log --all --graph --pretty=format:"%C(#0080ff)%h\\ \\%C(#c0d6de)%s\\%C(#17b062)%d"
103 lo = log --all --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)%d\\ \\%C(#c0d6de)%s"
104 ld = log --all --date=format:'%a %d %b' --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cd)%d\\ \\%C(#c0d6de)%s"
105 lg = log --all --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)%d\\ \\%C(#c0d6de)%s"
107 stat = !git diff --stat $(git merge-base HEAD \"master\")
108 fh = log --follow -p --
111 f = fetch -v github # verbose mode
112 fs = log github/master ^master # show fetch updates
113 pullrequest = !hub pr show # show pull request
114 issue = !hub issue # show issues
118 be = branch --edit-description
119 show-unmerged-branches = branch --no-merged master
120 show-merged-branches = branch --merged master
121 delete-remote-branch = push -d github #branch name
122 delete-remote-branch = push --delete github #branch name
123 show-ahead = rev-list --count master...
124 # git push -f origin $old_commit_id:master # change remote branch
125 # git reset --hard origin/<branch_name> # force sync with remote
126 # git branch -m old-name new-name # rename branches
127 # git remote rename origin destination # rename remote
128 # git remote set-url origin git@github.com:USERNAME/REPOSITORY.git # rename remote url
131 r = rm -r # remove file
132 adddeleted = !git ls-files --deleted | xargs git add
134 unstage-file = restore --staged
135 uncommit = reset --soft HEAD
136 # forcerestore = !git reset --hard HEAD $1 && git clean -f
137 # git reset --hard github/master
139 # Track Ignore files dirs
140 untrack= rm -r --cached --ignore-unmatch
141 retrack = update-index --no-assume-unchanged
142 show-untracked = ls-files . --exclude-standard --others
143 show-ignored = ls-files . --ignored --exclude-standard --others
145 # interactive staging
146 addi = add --interactive
149 create-diff = !sh ~/.scripts/create_diff_git.sh
150 apply-diff = !result=$(ls *.diff | dmenu -p 'select diff file' -l 10) && git apply $result