git分支创建以及合并
一、分支创建合并merge
第一步:我们需要将代码克隆下来:
git clone http://xxxxx(代码地址)
第二步:创建一个分支
git checkout -b XXXX(分支名称)
第三步:修改代码文件后提交分支
git add .
git commit -m "描述信息"
git push origin XXXX(上面创建的分支名称)
第四步:合并分支到主流程中
git checkout master //从分支切换到主流程中
git pull origin master //把主流程中最新代码拉下来,多人修改时适用
git merge XXXX(上面创建的分支名称) //将XXXX分支合并到主流程master中
第五步:如果这个时候出现冲突问题,分为两步进行
//如果没有冲突
git push origin master
//如果有冲突
修改了冲突后执行以下操作
git add .
git commit -m "描述信息"
git push origin master
额外注意:
1)如果第二次需要进行对分支的修改,需要先进入该分支(git checkout XXXX(上面创建的分支名称) ),然后才能修改文件!!!!!否则会默认在主流程中进行修改的,因为上面的步骤是切回了主流程的。这一点需要格外注意!!!!
二、利用tag管理项目版本号
1. 什么是tag?什么时候应该创建一个tag?
项目的版本管理中,每当一个release版本发布时,需要做一个记录,以便以后需要的时候能查找特定的版本,这时候就用到tag这个功能.
Git中的tag指向一次commit的id,通常用来给开发分支做一个标记,如标记一个版本号。
2. tag和branch有什么区别?
- branch是一个分支;tag是分支上的一个里程碑,一个点;
- tag就是一个只读的branch;一般为每一个可发布的里程碑版本打一个tag;
- 简单说比如branch有1.0,1.1等,其中1.0分支里可以有1.0.1,1.0.2这些tag;
- tag就像是一个里程碑一个标志一个点; branch是一个新的征程一条线;
- tag是静态的,branch要向前走;
- 稳定版本备份用tag,新功能多人开发用branch(开发完成后merge到master)。
3. 相关操作命令
3.1 打标签
git tag -a 0.1.3 -m “Release version 0.1.3″
复制代码
- git tag 是命令
- -a 0.1.3是增加名为0.1.3的标签
- -m 后面跟着的是标签的注释
打标签的操作发生在我们commit修改到本地仓库之后。
3.2 提交
git add .
git commit -m “fixed some bugs”
git tag -a 0.1.3 -m “Release version 0.1.3″
3.3 提交标签到远程服务器上
git push origin master git push origin --tags 复制代码
- –tags参数表示提交所有tag至服务器端,普通的git push origin master操作不会推送标签到服务器端。
- 如果指定特性的tag
git push origin [tagname]
3.4 删除标签的命令
git tag -d 0.1.3
3. 5 删除远端服务器的标签
git push origin :refs/tags/0.1.3
来源:
https://juejin.cn/post/6844903518751424525
https://blog.csdn.net/Miss_LL/article/details/125642264?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-125642264-blog-104757695.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-125642264-blog-104757695.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=10
三、案例
这里没有merage和tag的处理
1、目前所有分支
2、查看当前分支
3、创建新分支git checkout -b login-temp(-b创建一个分支,checkout切换到这个分支)
4、git status检查login-temp分支的文件状态
5、添加到暂存区git add .,并查看状态git status
6、提交到仓库, git commit -m 'finish login-temp',并查看当前状态,发现当前工作空间是干净的了
7、此时远程仓库并没有login-temp的分支
8、因为是第一次推送login-temp分支到远程仓库,所以需要git push -u origin login-temp(表示把本地分支login-temp推送到origin(云端仓库的别名)码云云端)
此时远程仓库已经有了login-temp分支,但是此时master主分支还是旧的
9、合并到master主分支
切换到master主分支,git checkout master
合并代码git merge login-temp,此时master主分支本地代码是最新的,但是远程仓库master主分支还是旧的,需要push到远程仓库,
10、push代码到远程仓库,因为上边已经执行了git push -u origin login-temp,所以不用git push -u,只需要git push就可以了
此时远程仓库master主分支已经是最新的了