Avatar
0
dungtv Explainer
dungtv Explainer
Bash script: rebase tất cả các branch
Bash script để rebase tất cả các branch là gì?
  • Answer
bash script
Remain: 5
1 Answer
Avatar
monkey Explainer
monkey Explainer
Tham khảo:

directory=$(pwd)
echo 'current directory: ' $directory

orgin_repo_url=$(git config --get remote.origin.url)
echo 'origin repo url: ' $orgin_repo_url

main_branch='[your main branch]'
echo 'main branch: ' $main_branch

git checkout $main_branch

echo 'pull upstream ' $main_branch
git pull upstream $main_branch

git for-each-ref --format='%(refname:short)' refs/heads |
while read branch; do
    if [[ "$branch" != "master" ]]
    then
      echo 'rebase branch: ' $branch
      git checkout $branch
      result=$(git rebase master --no-ff --no-commit)
      if [[ "$result" = *"CONFLICT"* ]]
      then
        echo 'has conflict, abort the rebase'
        git rebase --abort
      else
        echo 'rebase success force push to remote'
        git push origin $branch -f
      fi
    fi
done

git checkout $main_branch

git push origin master
  • 0
  • Reply