gitPushOrPull 531 B

12345678910111213141516171819202122
  1. #!/bin/sh
  2. # Check if pull or push is needed
  3. #
  4. # Usage: gitPushOrPull
  5. #
  6. # Source: http://stackoverflow.com/questions/3258243/git-check-if-pull-needed
  7. git fetch --all
  8. LOCAL=$(git rev-parse @)
  9. REMOTE=$(git rev-parse @{u})
  10. BASE=$(git merge-base @ @{u})
  11. if [ $LOCAL = $REMOTE ]; then
  12. echo "Up-to-date (LOCAL $LOCAL = REMOTE $REMOTE)"
  13. elif [ $LOCAL = $BASE ]; then
  14. echo "Need to pull (LOCAL $LOCAL = BASE $BASE)"
  15. elif [ $REMOTE = $BASE ]; then
  16. echo "Need to push (REMOTE $REMOTE = BASE $BASE)"
  17. else
  18. echo "Diverged"
  19. fi