alias.zsh 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. #
  2. # Defines Git aliases.
  3. #
  4. # Authors:
  5. # Sorin Ionescu <sorin.ionescu@gmail.com>
  6. #
  7. #
  8. # Settings
  9. #
  10. # Log
  11. zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \
  12. || _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B'
  13. zstyle -s ':prezto:module:git:log:oneline' format '_git_log_oneline_format' \
  14. || _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n'
  15. zstyle -s ':prezto:module:git:log:brief' format '_git_log_brief_format' \
  16. || _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n'
  17. # Status
  18. zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_submodules' \
  19. || _git_status_ignore_submodules='none'
  20. #
  21. # Aliases
  22. #
  23. if ! zstyle -t ':prezto:module:git:alias' skip; then
  24. # Git
  25. alias g='git'
  26. # Branch (b)
  27. alias gb='git branch'
  28. alias gba='git branch --all --verbose'
  29. alias gbc='git checkout -b'
  30. alias gbd='git branch --delete'
  31. alias gbD='git branch --delete --force'
  32. alias gbl='git branch --verbose'
  33. alias gbL='git branch --all --verbose'
  34. alias gbm='git branch --move'
  35. alias gbM='git branch --move --force'
  36. alias gbr='git branch --move'
  37. alias gbR='git branch --move --force'
  38. alias gbs='git show-branch'
  39. alias gbS='git show-branch --all'
  40. alias gbv='git branch --verbose'
  41. alias gbV='git branch --verbose --verbose'
  42. alias gbx='git branch --delete'
  43. alias gbX='git branch --delete --force'
  44. # Commit (c)
  45. alias gc='git commit --verbose'
  46. alias gcS='git commit --verbose --gpg-sign'
  47. alias gca='git commit --verbose --all'
  48. alias gcaS='git commit --verbose --all --gpg-sign'
  49. alias gcm='git commit --message'
  50. alias gcmS='git commit --message --gpg-sign'
  51. alias gcam='git commit --all --message'
  52. alias gco='git checkout'
  53. alias gcO='git checkout --patch'
  54. alias gcf='git commit --amend --reuse-message HEAD'
  55. alias gcfS='git commit --amend --reuse-message HEAD --gpg-sign'
  56. alias gcF='git commit --verbose --amend'
  57. alias gcFS='git commit --verbose --amend --gpg-sign'
  58. alias gcp='git cherry-pick --ff'
  59. alias gcP='git cherry-pick --no-commit'
  60. alias gcr='git revert'
  61. alias gcR='git reset "HEAD^"'
  62. alias gcs='git show'
  63. alias gcsS='git show --pretty=short --show-signature'
  64. alias gcl='git-commit-lost'
  65. alias gcy='git cherry --verbose --abbrev'
  66. alias gcY='git cherry --verbose'
  67. # Conflict (C)
  68. alias gCl='git --no-pager diff --name-only --diff-filter=U'
  69. alias gCa='git add $(gCl)'
  70. alias gCe='git mergetool $(gCl)'
  71. alias gCo='git checkout --ours --'
  72. alias gCO='gCo $(gCl)'
  73. alias gCt='git checkout --theirs --'
  74. alias gCT='gCt $(gCl)'
  75. # Data (d)
  76. alias gd='git ls-files'
  77. alias gdc='git ls-files --cached'
  78. alias gdx='git ls-files --deleted'
  79. alias gdm='git ls-files --modified'
  80. alias gdu='git ls-files --other --exclude-standard'
  81. alias gdk='git ls-files --killed'
  82. alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
  83. # Fetch (f)
  84. alias gf='git fetch'
  85. alias gfa='git fetch --all'
  86. alias gfc='git clone'
  87. alias gfcr='git clone --recurse-submodules'
  88. alias gfm='git pull'
  89. alias gfma='git pull --autostash'
  90. alias gfr='git pull --rebase'
  91. alias gfra='git pull --rebase --autostash'
  92. # Flow (F)
  93. alias gFi='git flow init'
  94. alias gFf='git flow feature'
  95. alias gFb='git flow bugfix'
  96. alias gFl='git flow release'
  97. alias gFh='git flow hotfix'
  98. alias gFs='git flow support'
  99. alias gFfl='git flow feature list'
  100. alias gFfs='git flow feature start'
  101. alias gFff='git flow feature finish'
  102. alias gFfp='git flow feature publish'
  103. alias gFft='git flow feature track'
  104. alias gFfd='git flow feature diff'
  105. alias gFfr='git flow feature rebase'
  106. alias gFfc='git flow feature checkout'
  107. alias gFfm='git flow feature pull'
  108. alias gFfx='git flow feature delete'
  109. alias gFbl='git flow bugfix list'
  110. alias gFbs='git flow bugfix start'
  111. alias gFbf='git flow bugfix finish'
  112. alias gFbp='git flow bugfix publish'
  113. alias gFbt='git flow bugfix track'
  114. alias gFbd='git flow bugfix diff'
  115. alias gFbr='git flow bugfix rebase'
  116. alias gFbc='git flow bugfix checkout'
  117. alias gFbm='git flow bugfix pull'
  118. alias gFbx='git flow bugfix delete'
  119. alias gFll='git flow release list'
  120. alias gFls='git flow release start'
  121. alias gFlf='git flow release finish'
  122. alias gFlp='git flow release publish'
  123. alias gFlt='git flow release track'
  124. alias gFld='git flow release diff'
  125. alias gFlr='git flow release rebase'
  126. alias gFlc='git flow release checkout'
  127. alias gFlm='git flow release pull'
  128. alias gFlx='git flow release delete'
  129. alias gFhl='git flow hotfix list'
  130. alias gFhs='git flow hotfix start'
  131. alias gFhf='git flow hotfix finish'
  132. alias gFhp='git flow hotfix publish'
  133. alias gFht='git flow hotfix track'
  134. alias gFhd='git flow hotfix diff'
  135. alias gFhr='git flow hotfix rebase'
  136. alias gFhc='git flow hotfix checkout'
  137. alias gFhm='git flow hotfix pull'
  138. alias gFhx='git flow hotfix delete'
  139. alias gFsl='git flow support list'
  140. alias gFss='git flow support start'
  141. alias gFsf='git flow support finish'
  142. alias gFsp='git flow support publish'
  143. alias gFst='git flow support track'
  144. alias gFsd='git flow support diff'
  145. alias gFsr='git flow support rebase'
  146. alias gFsc='git flow support checkout'
  147. alias gFsm='git flow support pull'
  148. alias gFsx='git flow support delete'
  149. # Grep (g)
  150. alias gg='git grep'
  151. alias ggi='git grep --ignore-case'
  152. alias ggl='git grep --files-with-matches'
  153. alias ggL='git grep --files-without-matches'
  154. alias ggv='git grep --invert-match'
  155. alias ggw='git grep --word-regexp'
  156. # Index (i)
  157. alias gia='git add'
  158. alias giA='git add --patch'
  159. alias giu='git add --update'
  160. alias gid='git diff --no-ext-diff --cached'
  161. alias giD='git diff --no-ext-diff --cached --word-diff'
  162. alias gii='git update-index --assume-unchanged'
  163. alias giI='git update-index --no-assume-unchanged'
  164. alias gir='git reset'
  165. alias giR='git reset --patch'
  166. alias gix='git rm -r --cached'
  167. alias giX='git rm -r --force --cached'
  168. # Log (l)
  169. alias gl='git log --topo-order --pretty=format:"$_git_log_medium_format"'
  170. alias gls='git log --topo-order --stat --pretty=format:"$_git_log_medium_format"'
  171. alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"$_git_log_medium_format"'
  172. alias glo='git log --topo-order --pretty=format:"$_git_log_oneline_format"'
  173. alias glg='git log --topo-order --graph --pretty=format:"$_git_log_oneline_format"'
  174. alias glb='git log --topo-order --pretty=format:"$_git_log_brief_format"'
  175. alias glc='git shortlog --summary --numbered'
  176. alias glS='git log --show-signature'
  177. # Merge (m)
  178. alias gm='git merge'
  179. alias gmC='git merge --no-commit'
  180. alias gmF='git merge --no-ff'
  181. alias gma='git merge --abort'
  182. alias gmt='git mergetool'
  183. # Push (p)
  184. alias gp='git push'
  185. alias gpf='git push --force-with-lease'
  186. alias gpF='git push --force'
  187. alias gpa='git push --all'
  188. alias gpA='git push --all && git push --tags'
  189. alias gpt='git push --tags'
  190. alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"'
  191. alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"'
  192. # Rebase (r)
  193. alias gr='git rebase'
  194. alias gra='git rebase --abort'
  195. alias grc='git rebase --continue'
  196. alias gri='git rebase --interactive'
  197. alias grs='git rebase --skip'
  198. # Remote (R)
  199. alias gR='git remote'
  200. alias gRl='git remote --verbose'
  201. alias gRa='git remote add'
  202. alias gRx='git remote rm'
  203. alias gRm='git remote rename'
  204. alias gRu='git remote update'
  205. alias gRp='git remote prune'
  206. alias gRs='git remote show'
  207. alias gRb='git-hub-browse'
  208. # Stash (s)
  209. alias gs='git stash'
  210. alias gsa='git stash apply'
  211. alias gsx='git stash drop'
  212. alias gsX='git-stash-clear-interactive'
  213. alias gsl='git stash list'
  214. alias gsL='git-stash-dropped'
  215. alias gsd='git stash show --patch --stat'
  216. alias gsp='git stash pop'
  217. alias gsr='git-stash-recover'
  218. alias gss='git stash save --include-untracked'
  219. alias gsS='git stash save --patch --no-keep-index'
  220. alias gsw='git stash save --include-untracked --keep-index'
  221. # Submodule (S)
  222. alias gS='git submodule'
  223. alias gSa='git submodule add'
  224. alias gSf='git submodule foreach'
  225. alias gSi='git submodule init'
  226. alias gSI='git submodule update --init --recursive'
  227. alias gSl='git submodule status'
  228. alias gSm='git-submodule-move'
  229. alias gSs='git submodule sync'
  230. alias gSu='git submodule update --remote --recursive'
  231. alias gSx='git-submodule-remove'
  232. # Tag (t)
  233. alias gt='git tag'
  234. alias gtl='git tag --list'
  235. alias gts='git tag --sign'
  236. alias gtv='git verify-tag'
  237. # Working Copy (w)
  238. alias gws='git status --ignore-submodules=$_git_status_ignore_submodules --short'
  239. alias gwS='git status --ignore-submodules=$_git_status_ignore_submodules'
  240. alias gwd='git diff --no-ext-diff'
  241. alias gwD='git diff --no-ext-diff --word-diff'
  242. alias gwr='git reset --soft'
  243. alias gwR='git reset --hard'
  244. alias gwc='git clean --dry-run'
  245. alias gwC='git clean --force'
  246. alias gwx='git rm -r'
  247. alias gwX='git rm -r --force'
  248. fi