zoukankan      html  css  js  c++  java
  • bat之操作git,根据文件名方便的切换各个分支合并

    Tips:文件名第一个为目标分支,后面逗号的几个分支都是需要合并到该目标分支的远程分支。

    @echo off

    set nowPath=%~n0


    ::~~~~~~~~~~~~~~~~~~~~~~为了切换分支,必须对当前分支做拉取提交动作 本地分支localPath~~~~~~~~~~~
    for /f "delims=" %%i in ('git branch^| find "*"') do set localPath=%%i

    echo "拉取%localPath:~2%分支"
    git pull origin %localPath:~2%
    if "%errorlevel%"=="1" (
    echo 分支合并有冲突,请手动合并 从%localPath:~2%拉取%localPath:~2%
    pause
    exit
    )

    echo "拉取完毕"
    echo "添加未列入版本管理的文件"
    git add .
    git rm --cached *.bat

    echo "提交并且注释添加"
    git commit -am "%date% %time%"

    echo "提交%localPath:~2%至远程分支"
    git push origin %localPath:~2%:%localPath:~2%


    ::~~~~~~~~~~~~~~~~~~~~~~~~~~切换到目的分支,文件名第一个分支为总分支,总分支拉取#分隔的后面几个分支~~~~~~~~~~~~~~~~~~~~
    echo ~~~~~~~~~~~~~~~~~~~~~本地分支处理完毕,切换远程分支处理~~~~~~~~~~~~~~~~~~~~~
    echo 切换到第一个目标分支
    for /f "delims=," %%i in ("%nowPath%") do set targetPath=%%i
    echo 切换到%targetPath%分支
    git checkout %targetPath%

    for %%a in (%nowPath%) do (
    echo ~~~~~~~~~~~~~~~~~~~~~~~~拉取%%a分支~~~~~~~~~~~~~~~~~~~~~~
    git pull origin %%a
    if "%errorlevel%"=="1" (
    echo 分支合并有冲突,请手动合并 从%targetPath%拉取%%a
    pause
    exit
    )
    )
    echo ~~~~~~~~~~~~从目标分支%targetPath%提交到远程~~~~~~~~~~~~~~~~~~~
    git push origin %targetPath%

    echo ~~~~~~~~~~~~切换到原来的分支%localPath:~2%~~~~~~~~~~~~~~~~~~~
    git checkout %localPath:~2%
    echo 切换完成
    pause

  • 相关阅读:
    git修改远程仓库地址
    Result Maps collection already contains value for com.miniprogram.meirong.user.dao.UserMapper.BaseResultMap
    查看微信小程序的appID和secret
    Springboot配置fastjson开发
    本地仓库上传码云
    总结分析Java常见的四种引用
    equals和hashcode 和 ==方法说明
    关于Class.forName(className).newInstance()介绍
    Java枚举
    抽象工厂模式-与-工厂方法模式区别
  • 原文地址:https://www.cnblogs.com/Garin/p/7063642.html
Copyright © 2011-2022 走看看