git.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. ##############################################################################
  2. #
  3. # Git Aliases
  4. #
  5. ##############################################################################
  6. if command_exists git; then
  7. git config --global user.signingkey 0E669F3125C0EDB2C8B040E49D7B2F1E705D7EFC
  8. git config --global commit.gpgsign true
  9. git config --global alias.a add
  10. git config --global alias.b branch
  11. git config --global alias.c checkout
  12. git config --global alias.co commit
  13. git config --global alias.d difftool
  14. git config --global alias.f fetch
  15. git config --global alias.l log
  16. git config --global alias.ps push
  17. git config --global alias.s "status -uno"
  18. git config --global alias.st stash
  19. git config --global alias.cp cherry-pick
  20. git config --global alias.w switch
  21. git config --global alias.pm "checkout alexmatevish-master"
  22. git config --global alias.bn "rev-parse --abbrev-ref HEAD" # branch-name
  23. git config --global alias.psc "push origin \`git rev-parse --abbrev-ref HEAD\`" # push current
  24. git config --global alias.plc "pull origin \`git rev-parse --abbrev-ref HEAD\`" # pull current
  25. git config --global alias.lco "log -n 1 --pretty=format:'%h'"
  26. git config --global alias.bp "merge-base --octopus master"
  27. git config --global alias.mod "!git status -s | grep -r '.*\.scala' | cut -f4 -d' '"
  28. git config --global alias.lp "log --pretty=format:\"%h%x09%an%x09%ad%x09%s\""
  29. alias g='git'
  30. alias gs='git s'
  31. alias gps='git push origin `git rev-parse --abbrev-ref HEAD`'
  32. alias gpl='git pull origin `git rev-parse --abbrev-ref HEAD`'
  33. alias gp='git pull origin `git rev-parse --abbrev-ref HEAD`'
  34. alias gdm='git diff `git bp`...HEAD'
  35. if command_exists meld; then
  36. git config --global diff.tool meld
  37. git config --global merge.tool meld
  38. git config --global --add difftool.prompt false
  39. fi;
  40. function git-delete-merged () {
  41. n=$'\n'
  42. branches=$(git branch --merged $1 | egrep -v "(^\*|master|dev)");
  43. if prompt_user "The following branches would be deleted:$n$branches$n"; then
  44. git branch --merged $1 | egrep -v "(^\*|master|dev)" | xargs git branch --delete;
  45. fi
  46. }
  47. alias gbdm='git-delete-merged'
  48. alias glatest='git checkout master && git pull'
  49. function wip () {
  50. NL=$'\n'
  51. GIT_ROOT=`git rev-parse --show-toplevel`
  52. LAST_MESSAGE=`git log -1 --pretty=%B | cat`
  53. if [[ $LAST_MESSAGE == "WIP"* ]]; then
  54. if prompt_user "Reset HEAD~? (Previous message: $LAST_MESSAGE)"; then
  55. git reset HEAD~;
  56. fi
  57. else
  58. CHANGED_FILES=`git diff --name-only HEAD $GIT_ROOT`
  59. if prompt_user "Commit the following files to a WIP commit? ${NL}$CHANGED_FILES${NL}"; then
  60. git add $GIT_ROOT && git commit -m WIP;
  61. fi
  62. fi
  63. }
  64. alias gd='yes | g d HEAD'
  65. fi