文章目录

  • 前言

  •  

    • 本文介绍的内容:

  • I 、合并

  •  

    • 1.1.1 切换回master分支并merge

    • 1.1.2 添加标签并推送至服务器

    • 1.1.3 checkout develop 切换回开发分支

    • 1.1 分支到主干

    •  

    • 1,2 、 合并最新主干代码 到分支

  • II、常用git脚本

  •  

    • 2.1 初始化项目脚本

    • 2.2 提交代码到远程仓库

       

前言

 

本文介绍的内容:

1、每次发布版本之后,需要打tag。具体步骤是 先把开发分支的代码合并到master,在打tag.

2、常用git脚本:针对GitHub的master 更名进行脚本调整(master 更名为main,例如push 需改为git push -u origin main)

  •  

I 、合并

1.1 分支到主干

1.1.1 切换回master分支并merge


#切换回master分支

git checkout master

# merge --no-ff参数,表示禁用Fast forward;可以保存你之前的分支历史。能够更好的查看merge历史,以及branch 状态.
#保证版本提交、分支结构清晰
git merge --no-ff develop

#push
git push





  •  
  •  

1.1.2 添加标签并推送至服务器

添加标签 在当前commit
git tag -a v1.0 -m 'xxx'

推送
git push origin --tags

  •  
  •  

1.1.3 checkout develop 切换回开发分支

git checkout develop

  •  
  •  

1,2 、 合并最新主干代码 到分支

(feature) git checkout master 
(master) git pull
(master) git checkout feature
(feature) git merge master

  •  
  •  

II、常用git脚本

2.1 初始化项目脚本

  • kngitinit

#!/bin/sh
# dirname $0,取得当前执行的脚本文件的父目录
# cd `dirname $0`,进入这个目录(切换当前工作目录)

# cd `dirname $0`
#alias gitadd='cd `dirname $0` && git add . && git commit -m /!* && git push'
#!/bin/bash
#
# NOTE: You need to `brew install git` on Mac
#
# by @kunnan
# https:///zhangkn/KNAlipayWalletTweakDemo
# 在存在的项目中,创建git 仓库,并上传到远程仓库地址
#
# usage: kngitinit SSHURL git@:zhangkn/KNAlipayWalletTweakDemo.git


usage() {
echo "在存在的项目中,创建git 仓库,并上传到远程仓库地址"
echo
echo "Usage: $0 {SSHURL}"
}

if [ ! -n "$1" ] ;then
echo "Invalid url $1"
usage
exit 1
fi

# 清除旧有的仓库关系:取消本地目录下关联的远程库;常常用于copyxx项目的基础上,创建新项目的场景
git remote remove origin

# 变量赋值不要有空格
var=$1
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 git@:zhangkn/ 结果是 KNAlipayWalletTweakDemo.git
var=${var##*/}
#%/* 表示从右边开始,删除第一个 / 号及右边的字符
var=${var%.*}
echo "# $var" >> README.md
#echo "# " >> README.md
cat /Users/devzkn/code/.gitignore >> .gitignore
git init
git add .
git commit -m "first commit"
git remote add origin $1
git push -u origin master
exit 0

  •  
  •  

  • 针对GitHub的脚本: 因为GitHub的master 更名为main,因此做了脚本修改git push -u origin main

#!/bin/sh
# dirname $0,取得当前执行的脚本文件的父目录
# cd `dirname $0`,进入这个目录(切换当前工作目录)

# cd `dirname $0`
#alias gitadd='cd `dirname $0` && git add . && git commit -m /!* && git push'
#!/bin/bash
#
# NOTE: You need to `brew install git` on Mac
#
# by @kunnan
# https:///zhangkn/KNAlipayWalletTweakDemo
# 在存在的项目中,创建git 仓库,并上传到远程仓库地址
#
# usage: kngitinit SSHURL git@:zhangkn/KNAlipayWalletTweakDemo.git


usage() {
echo "在存在的项目中,创建git 仓库,并上传到远程仓库地址"
echo
echo "Usage: $0 {SSHURL}"
}

if [ ! -n "$1" ] ;then
echo "Invalid url $1"
usage
exit 1
fi

# 清除旧有的仓库关系:取消本地目录下关联的远程库;常常用于copyxx项目的基础上,创建新项目的场景
git remote remove origin

# 变量赋值不要有空格
var=$1
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 git@:zhangkn/ 结果是 KNAlipayWalletTweakDemo.git
var=${var##*/}
#%/* 表示从右边开始,删除第一个 / 号及右边的字符
var=${var%.*}
echo "# $var" >> README.md
#echo "# " >> README.md
cat /Users/devzkn/code/.gitignore >> .gitignore
git init
git add .
git commit -m "first commit"
git remote add origin $1
git push -u origin main
exit 0
  •  
  •  

强制push:git push -u origin master -f

2.2 提交代码到远程仓库

#!/bin/sh
git pull
git status
git add .
# $1 和“$1” 的区别,在于,$1 返回的是一个char数组,“$1” 返回的是一个字符串
git commit -m "$1"
git push
exit 0% ➜ iOS14Test git:(master)

 

 

see also

 

 

------git merge用法_git merge