Guest User

Untitled

a guest
Dec 12th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. # Do an octopus merge and select a strategy for each branch you
  4. # want to merge.
  5.  
  6. STRATEGY="recursive"
  7. HEADS=( $(git rev-parse HEAD) )
  8. git checkout HEAD^{}
  9.  
  10. while [ $# -gt 0 ]; do
  11. if [ "$1" = "-s" ]; then
  12. shift; STRATEGY="$1"
  13. else
  14. printf "Merging $1 with $STRATEGY strategy... "
  15. HEADS[${#HEADS[*]}]=$(git rev-parse $1)
  16. if ! git merge -s $STRATEGY $1 1>/dev/null 2>&1; then
  17. printf "failed\n"; exit 1
  18. fi
  19. printf "\n"
  20. fi
  21.  
  22. shift
  23. done
  24.  
  25. n=$(( ${#HEADS[*]} - 1 ))
  26. git reset --soft HEAD~$n
  27.  
  28. rm -f .git/MERGE_HEAD
  29. for head in ${HEADS[@]}; do
  30. echo $head >> .git/MERGE_HEAD
  31. done
  32.  
  33. git commit
Add Comment
Please, Sign In to add comment