美文网首页
GIT快速合并工具

GIT快速合并工具

作者: lnts | 来源:发表于2018-11-08 12:08 被阅读0次

GIT快速合并工具

由来:

在日常开发中我发现一个我们在重复做的事情,我们经常把开发完功能的源分支 合并推送到 目标分支(我们常手动合并的目标分支有:master 和 staging)
自己回想一下是不是这样呢?

设计思路:

  1. 新建一个目录,用于分支的合并、推送。
  2. 只能同时进行一个目标分支的合并、推送。

整体流程

1、选择目标分支 -> 2、输入源分支 -> 3、git checkout && git pull -> 4、git merge -> 5、git push

第一步:选择目标分支

targetBranchName="master"
echo " "
echo "请选择目标分支? 输入数字: 1 或者 2"
echo "1 master"
echo "2 staging"

read number
case $number in
1)echo "你选择目标分支是: master" && targetBranchName="master"
;;
2)echo "你选择目标分支是: staging" && targetBranchName="staging"
;;

esac

第二步:输入源分支

read -p "输入源分支名称: "  sourceBranchName

第三步:git checkout 目标分支 && git pull

if git checkout ${targetBranchName} && git pull

then
    echo -e "git pull ${TEXT_GREEN}finished${TEXT_NC}" && stepFour
else
    echo "${TEXT_RED}git checkout or git pull 失败!${TEXT_NC}"
fi

第四步:git merge

echo "run git merge"
if git merge origin/${sourceBranchName}

then
    echo -e "run git merge ${TEXT_GREEN}finished${TEXT_NC}" && stepFive
else
    echo -e "${TEXT_RED} git merge 失败。查看上文提示,请回到项目工程手动处理${TEXT_NC}"
    git merge --abort
fi

第五步:git push 并且打开 deployer

git push &&
echo -e "-------step5: git push ${TEXT_GREEN}finished${TEXT_NC} \n合并${targetBranchName}完成,去重启吧!"
deployerUrl=""

if [ ${targetBranchName} == 'staging' ]; then
    deployerUrl=""
fi
start "chrome" ${deployerUrl}

完整代码:

#!/bin/bash
#更改为自己的目录地址
cd F://workspaces/bat/test

pwd

## text color
TEXT_RED="\033[31m"
TEXT_GREEN="\033[32m"
TEXT_NC="\033[0m"

echo -e "\033[32m 欢迎使用自动合并工具 \033[0m"

targetBranchName="master"

echo " "
echo "请选择目标分支? 输入数字: 1 或者 2"
echo "1 master"
echo "2 staging"

read number
case $number in
1)echo "你选择目标分支是: master" && targetBranchName="master"
;;
2)echo "你选择目标分支是: staging" && targetBranchName="staging"
;;

esac

read -p "输入源分支名称: "  sourceBranchName

stepFour(){

    echo "-------step4: run git merge"
    if git merge origin/${sourceBranchName}

    then
        echo -e "-------step4: run git merge ${TEXT_GREEN}finished${TEXT_NC}" && stepFive
    else
        echo -e "${TEXT_RED} git merge 失败。查看上文提示,请回到项目工程手动处理${TEXT_NC}"
        git merge --abort
    fi

}

stepFive(){
    echo "-------step5: run git push"

    echo -e "${TEXT_GREEN}run git status${TEXT_NC}"

    git status

    seconds_left=6
    echo "请确认...马上执行git push"
    while [ $seconds_left -gt 0 ];do
      echo -n $seconds_left
      sleep 1
      seconds_left=$(($seconds_left - 1))
      echo -ne "\r     \r" #清除本行文字
    done


    git push &&
    echo -e "-------step5: git push ${TEXT_GREEN}finished${TEXT_NC} \n合并${targetBranchName}完成,去重启吧!"
    deployerUrl=""

    if [ ${targetBranchName} == 'staging' ]; then
        deployerUrl=""
    fi
    start "chrome" ${deployerUrl}
}


if [ ! ${sourceBranchName} ]; then
    echo -e "${TEXT_RED} 源分支名称不能为空,请重新输入!!"
else
    echo -n "你输入的分支名称: " ${sourceBranchName}

    echo ' 目标分支: ' ${targetBranchName}

    echo -e ${TEXT_RED}${sourceBranchName}${TEXT_NC} ${TEXT_GREEN}"分支合并到"${TEXT_NC} ${TEXT_RED}${targetBranchName}${TEXT_NC} ${TEXT_GREEN}"分支 马上开始... ${TEXT_NC}"

    seconds_left=6
    echo "请确认..."
    while [ $seconds_left -gt 0 ];do
      echo -n $seconds_left
      sleep 1
      seconds_left=$(($seconds_left - 1))
      echo -ne "\r     \r" #清除本行文字
    done

    echo "-------step1: run git pull"

    if git checkout ${targetBranchName} && git pull

    then
        echo -e "-------step1: git pull ${TEXT_GREEN}finished${TEXT_NC}" && stepFour
    else
        echo "${TEXT_RED}git checkout or git pull 失败!${TEXT_NC}"
    fi

fi

运行

运行你保存的.sh 文件就行。

相关文章

  • GIT快速合并工具

    GIT快速合并工具 由来: 在日常开发中我发现一个我们在重复做的事情,我们经常把开发完功能的源分支 合并推送到 目...

  • Git

    Git 工具 - 子模块 git合并两个不同的仓库 A successful Git branching mode...

  • 【Git】分支合并工具使用

    Git 预设了许多其他的合并和解决冲突的工具,通过下面这个命令可以查看: 下面说明Mac上安装Git的合并工具P4...

  • mac 配置git 冲突合并工具 kdiff3

    mac 配置git 代码合并工具 kdiff3 git config --global merge.confl...

  • git 入门教程之分支策略

    默认情况下合并分支常常直接使用 git merge 命令,是最方便快速的合并方法.其实这种情况下 git 采用的是...

  • Git 入门教程之分支策略

    默认情况下合并分支常常直接使用 git merge 命令,是最方便快速的合并方法.其实这种情况下 git 采用的是...

  • git篇之高级合并

    本文转载自Git-工具-高级合并[https://git-scm.com/book/zh/v2/Git-%E5%B...

  • 2019-07-31【git分支-分支管理】

    5.4 分支管理策略 通常,合并分支时,如果可能,git会用Fast forward模式,但是有些快速合并不能成功...

  • Windows下使用Beyond Compare作为git的比对

    使用图形客户端进行差异比较和合并冲突比较直观,因此使用Beyond Compare作为git的比对与合并工具。 打...

  • 布尔运算

    知识点 1.合并形状 1.1位置:绘图工具->插入形状->合并形状 1.2功能: 1.4添加到快速访问工具栏:直接...

网友评论

      本文标题:GIT快速合并工具

      本文链接:https://www.haomeiwen.com/subject/sizixqtx.html