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

  • 相关阅读:
    uniapp中的跳转传参
    图解排序算法(三)之堆排序
    serverlesss
    kvm
    用户态和内核态的理解和区别
    MySQL优化十大技巧
    不懂数据库索引的底层原理?那是因为你心里没点b树
    让你的 Linux 命令骚起来
    史上最简约的vi教程
    mysql 四种隔离级别
  • 原文地址:https://www.cnblogs.com/Garin/p/7063642.html
Copyright © 2011-2022 走看看