put to /usr/local/bin/git-squash
execute in bash chmod +x /usr/local/bin/git-squash
use git squash
| #!/bin/bash | |
| git log -1 | |
| read -p "Enter commit message: " COMMIT | |
| BRANCH=$(git rev-parse --abbrev-ref HEAD) | |
| if [[ `git status --porcelain` ]]; then | |
| git add -A \ | |
| && git commit -m "$BRANCH $COMMIT" | |
| fi | |
| git reset --soft HEAD~$(git cherry -v master | wc -l | xargs) \ | |
| && git stash \ | |
| && git checkout master \ | |
| && git pull \ | |
| && git checkout $BRANCH \ | |
| && git merge master \ | |
| && git stash apply \ | |
| && git add -A \ | |
| && git commit -m "$BRANCH $COMMIT" \ | |
| && git push --set-upstream origin $BRANCH --force |