git 拉取所有分支

  1. 新增pull-all.sh
  2. pull-all.sh内容如下
    #!/bin/sh
    main() {
      REMOTES="$@";
      echo $REMOTES;
      if [ -z "$REMOTES" ]; then
        REMOTES=$(git remote);
      fi
      REMOTES=$(echo "$REMOTES" | xargs -n1 echo)
      CLB=$(git branch -l|awk '/^\*/{print $2}');
      echo "$REMOTES" | while read REMOTE; do
        git remote update $REMOTE
        git remote show $REMOTE -n \
        | awk '/merges with remote/{print $5" "$1}' \
        | while read line; do
          RB=$(echo "$line"|cut -f1 -d" ");
          ARB="refs/remotes/$REMOTE/$RB";
          LB=$(echo "$line"|cut -f2 -d" ");
          ALB="refs/heads/$LB";
          NBEHIND=$(( $(git rev-list --count $ALB..$ARB 2>/dev/null) +0));
          NAHEAD=$(( $(git rev-list --count $ARB..$ALB 2>/dev/null) +0));
          if [ "$NBEHIND" -gt 0 ]; then
            if [ "$NAHEAD" -gt 0 ]; then
              echo " branch $LB is $NBEHIND commit(s) behind and $NAHEAD commit(s) ahead of $REMOTE/$RB. could not be fast-forwarded";
            elif [ "$LB" = "$CLB" ]; then
              echo " branch $LB was $NBEHIND commit(s) behind of $REMOTE/$RB. fast-forward merge";
              git merge -q  $ARB;
            else
              echo " branch $LB was $NBEHIND commit(s) behind of $REMOTE/$RB. reseting local branch to remote";
              git branch -l -f $LB -t $ARB >/dev/null;
            fi
          fi
        done
      done
    }
    
    main $@
    
    
    
    

  3. 将pull-all.sh放到git的安装路径中的cmd文件夹中
  4. 在git bash中,执行命令     pull-all.sh   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值