一,Git分支
1.1 理解Git分支
在 Git 中,分支是指一个独立的代码线,并且可以在这个分支上添加、修改和删除文件,同时作为另一个独立的代码线存在。一个仓库可以有多个分支,不同的分支可以独立开发不同的功能,从而可以方便地进行并行开发和测试
Git 的分支可以帮助团队进行并行开发,例如在主分支上开发新功能或修复 bug,同时在其他的分支上进行其他的开发。当准备好一部分更改并且确保这些更改不会破坏主干时,可以将这些更改合并到主分支中
Git 中的分支管理非常灵活,开发者可以在任何分支上添加、修改文件等操作,并随时切换分支。同时,Git 提供了强大的分支操作功能,包括分支创建、分支切换、分支合并等,帮助开发者更好的管理代码分支
1.2 分支在实际中有什么作用
假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完, 不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险
怎么办? 现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作, 而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作
1.3 四个环境以及各自的功能特点
**dev(开发环境):**开发环境,外部用户无法访问,开发人员使用,版本变动很大
**test(测试环境):**测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定
**pre(灰度环境):**灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样
**pro(生产环境):**生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境
1.4 分支策略
分支策略 在实际开发中,我们应该按照几个基本原则进行分支管理:
1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活
2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时, 再把dev分支合并到master上,在master分支发布1.0版本
3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除
4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场
二 分支的应用
2.1 学习分支命令
首先先来学习以下分支的相关命令,再到后面学习远程仓库问题
1.查看分支
此命令会列出所有分支,当前分支前面会标一个*号
git branch //查看本地分支
git branch -a //查看远程分支
2.创建分支
git branch name //仅仅保存本地,远程还需要push
push git push <远程仓库名> <远程分支名>
3.切换分支
git checkout name
4.创建+切换分支
git checkout -b name
5.删除分支(分本地和远程)
git branch //查看本地分支
git branch -d name //删除本地分支
git branch -a //查看远程分支
git push origin --delete dev //删除远程分
6.合并某分支到当前分支
git merge name
注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。 使用 用git log --graph命令可以看到分支合并图
2.1 分支命令使用
① 创建远程仓库
打开Gitee官网,并创建一个远程仓库
点击初始化readme文件即可
将刚创建的远程仓库SSH地址复制
② 克隆远程仓库
新建文件夹将刚创建远程仓库克隆过来
右击点击 Git Bash Here
执行指令:git clone "SHH地址"
这样远程仓库的就克隆下来了
③ 使用分支命令
cd 远程仓库名 进入刚刚所克隆下来的远程仓库
最后括号中的master代表的是生成坏境
3.1.1 创建分支与查看分支
git branch dev (创建开发坏境分支)
git branch (查看分支)
3.1.2 删除分支命令
git branch -d name (该name是分支名)
3.1.3 切换分支
git checkout name (该name是分支名)
注意:在当前的分支下不能删除该分支
3.1.4 创建+切换分支
git checkout -b name (-b是branch缩写 name是分支名)
④ 应用场景模拟
在我们本地仓库中创建8个文件,来模拟在不同的分支坏境中拿到不同的文件
前面我们建立了一个dev为开发坏境,再建立一个text为测试坏境分支
打开Gui图形化界面(没有安装输入相关指令也可以)Git GUI Here
将文件放置到暂存区域
使用我们所学的知识 git status 查看该文件状态
红区代表未在暂存区蓝色则相反(刚所提交的文件就是在暂存区域中)
把刚暂存区域的文件,提交到git管理
git commit -am '4个文件加入到测试坏境分支'
刚刚我们用的dev开发坏境分支,我们所看到的文件还是8个
现在我们切换到测试坏境分支中
测试坏境中只能看到3个了,也就是在不同的分支中看到的文件等东西也不样
如果将dev 开发坏境分支所提交到git管理的文件在 text测试也能看得到的话,就需要将dev分支与text分支合并在一起
git merge name (该name是分支名)
如果没有合并分支的情况下,继续切换到master主支模块,所看的文件又会不一样
text测试员合并dev文件的时候,发现dev所写的代码文件不合格,将刚合并的dev暂存的文件1和2删除了,也commit提交到Git管理中。
继续将master主支分支和text合并,模拟这些代码模块就是要上传到远程仓库的
⑤ 建立本地分支与远程仓库连接
切换到本地dev开发
git checkout dev
将文件上传到远程仓库
git push origin dev
最后上Gitee,将分支切换成dev
就能看见刚上传的代码文件了
继续大同小异 切换到text分支中并将文件模块上传
上Gitee,将分支切换成text发现在刚刚所删除暂存管理的1和2无法上传了,这就是在不同的坏境分支模块中的代码不会影响到其他分支中