git 分支操作

创建tag

当我们开发完某一个重要的功能,或者实现了一个里程碑后,在提交代码后,可以打一个tag,以便以后创建分支,查找

git tag 版本号

查看tag

git tag

创建附加标签(可以加一些标注)

git tag -a 版本号 -m "标注信息"

// 查看标注信息
git show 版本号

将tag推送到远程仓库

// 将某一个tag推送到远程仓库
git push 远程仓库名 版本号
// 将本地所以tag推送远程
git push 远程仓库名 --tags

删除tag

// 删除本地tag
git tag -d 版本号
// 删除远程tag
git push 远程仓库名 -d 版本号

检出tag

当我们想回到某个tag进行查看,我们通常在检出tag后创建一个新的分支(分支在后面)

// 检出tag
git checkout 版本号

git基本原理

git的基本原理,都是已文件形式保存,大家了解就行,有助于理解分支

创建分支

git中创建分支非常简单,相当于创建了一个可移动的指针

git branch 分支名

切换到新分支

git checkout 分支名

// 创新新分支并切换到新分支
git checkout -b 分支名

分支的合并

//把分支2的内容合并到分支1,先切换到分支1
git merge 分支2

解决合并冲突

 应用场景1

当你的项目打上tagv1.0.0发布后,你在当前dev分支继续开发新功能,用户发现你发布的项目有bug,你需要改,先切换到tagv1.0.0然后创建新分支hotfix,在hotfix上修改完bug后,重新打tagv1.0.1发布时你dev分支依然存在bug,可以合并hotfix分支

查看分支

git branch

删除分支

// 删除的是指针,提交历史不会被删除
git branch -d 分支名

git的工作流

 master分支用来发布稳定版本,在develop分支进行开发,新功能(可能要可能不要)就在feature分支开发,当master发布的版本有问题,就切换到tag创建hotfix分支修改,修改后合并master重新打tag发布,也合并到develop,当功能开发完,需要测试,就创建release分支测试,并改bug,之后发布,合并develop

git的远程分支

这里再说个简单的,本地仓库添加远程仓库的方法,创建本地,远程仓库后

# 增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]

方法一:此时两个仓库已经关联,但本地分支与远程分支没有关联,

// 创建新分支,并与远程master分支关联
// 如果你本地分支也叫master,先创建个别的分支,把master删除了,之后把新创建的分支合并,也可以删除
// 这样简单,直接把本地分支与远程分支关联了,省了很多别的操作
git checkout --track origin/master

 master分支是远程仓库关联拉下来的,与本地新建分支没关系,合并会报错

// 当你合并本地分支时,会报refusing to merge unrelated histories
// 这是两个没有共同祖先,也就是毫不相关的两个仓库,添加--allow-unrelated-histories
git merge develop --allow-unrelated-histories

此时本地仓库与远程仓库已经关联,并且分支已经关联

方法二

git checkout 分支名

将本地分支推送远程

git push origin develop  
// 此时远程已有develop,并且内容已经推送
//当我们第二次push
//提示 git push --set-upstream origin develop 设置上游分支
git push --set-upstream origin develop
// 或者
git branch --set-upstream-to=origin/develop
// 之后push就ok了

拉取远程分支到本地

git checkout 分支名
//三步操作
//先看远程是否有这个分支
//有的话,本地创建
//跟踪远程

删除远程分支

git push origin -d 远程分支名

 git rebase使用

与marge差不多,用来合并

用marge进行合并

 用rebase进行合并

 rebase的log图是线性的

// 当在experiment分支开发好后,在experiment分支进行操作
git rebase master
//原理就是改变experiment的base为master
git checkout master
git merge experiment
//这样就ok了

rebase与marge的选择

rebase的提交记录是线性的,简洁

merge拥有所有提交记录

注意:永远不要在主分支master上使用rebase

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值