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

  • 相关阅读:
    微软 安全用户教育影片 有MM 哦
    数据字典是什么?
    调用Object.GetHashCode的缺省实现
    CCharp 中委托和事件的机制和应用
    C#.NET 中的类型转换
    解决在全文搜索中搜索中文字符
    ADO.NET 获取大型 数据
    Realize the Potential of Office 2003 by Creating Smart Tags in Managed Code
    MSDN 智能客户端开发人员中心
    ADO.Net 缓冲 插入大型数据
  • 原文地址:https://www.cnblogs.com/Garin/p/7063642.html
Copyright © 2011-2022 走看看