Java阶段五Day03
文章目录
- Java阶段五Day03
- 回顾git命令
- Git远程仓库
- 远程仓库概念
- 远程仓库分支操作
- 分支管理策略
回顾git命令
本地版本控制
- git init
- git add
- git commit
- git log
- git status
- git tag
- git reflog
- git reset
分支管理
- git branch
- git branch b1
- git checkout b1
- git merge b1
- git rebase b1
Git远程仓库
远程仓库概念
git 分布式的版本控制软件,同时支持去中心化
为了方便版本的交换,通常会使用一个中心服务器,24小时连续运行,提供版本控制服务
这就有两种做法:
自己搭建中心服务器(公司内部搭建gitlab)
使用类似GitHub的代码托管网站(国内时gitee)
目前我们更多使用代码托管的方式进行开发工作
登录gitee 如何将本地代码,推送到远程,关联到远程.
远程仓库分支操作
- 在托管平台准备一个空仓库
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QJUlHX5E-1689052681202)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711092402307.png)]](https://img-blog.csdnimg.cn/624e290a6ec04d329350b1ca76fee0a3.png)

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xQrSLczA-1689052681203)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711092832521.png)]](https://img-blog.csdnimg.cn/4dfc85701e464c78b1a1007b310be1ec.png)
- 在当前本地项目中添加远程仓库关联
使用git remote命令来添加仓库
git remote -v
不携带参数执行,是查询本地仓库关联的远程仓库,可以关联很多个.
使用add子命令,来添加你的目标远程仓库
git remote add {自定义仓库名称} {仓库地址*.git}
git remote add gitee-repo https://gitee.com/xiaolaoshi202
1/git-demo.git
- push 推送
和远程仓库关联之后,可以通过push推送. 可以先确保本地有提交的数据.
git push {仓库名称} {本地分支名称}
如果是第一次push或者fetch,本地要填写远程仓库用户名密码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O2l0QRRQ-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711093821111.png)]](https://img-blog.csdnimg.cn/88cf87dd61a1406f97f63008820dffc9.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OnjrzQ6B-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711093913362.png)]](https://img-blog.csdnimg.cn/b1734255181b42a8b2551737d85f8a7b.png)
- gitee添加团队成员
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CKtXn3pO-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711094656268.png)]](https://img-blog.csdnimg.cn/5f2de01b4b954160b853be6db19029d4.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vsf9ixsR-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711094851590.png)]](https://img-blog.csdnimg.cn/370803050bfe4d798de93ef891f577ed.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EykybS61-1689052681205)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711095142990.png)]](https://img-blog.csdnimg.cn/ba0f1f1bd3e740fd883f38995b4be736.png)
- 克隆远程仓库项目
团队其他成员,可以通过连接远程仓库,进行项目克隆
git clone {远程仓库地址} 目录名称
git clone https://gitee.com/xiaolaoshi2021/git-demo.git ./git-demo-b
- 远程分支概念
刚刚克隆的项目,只有默认分支(master),同步到了本地分支
在当前项目由于关联的远程托管中心,分支分成了2批,第一批就是本地分支
第二批就是远程分支
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LZhQwwfT-1689052681205)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711102025942.png)]](https://img-blog.csdnimg.cn/f0d048eb620445d39dbceb8b4ccffb50.png)
可以像操作本地分支一样,部分命令可以操作远程分支.
- 查看并切换分支
git branch -a
查看当前仓库中所有的分支信息,包括远程分支.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PMg4rgUp-1689052681206)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711102211697.png)]](https://img-blog.csdnimg.cn/a766774d148b471f9e574b6302cc03fb.png)
注意:永远不可能在本地仓库对远程remotes分支进行修改.因为在本地看到的远程分支只是元数据(描述远程分支信息的数据,描述数据的数据).
可以执行分支的切换命令
git checkout {分支名称}
这个命令缺少必要选项,导致切换远程分支,没有创建本地分支.
- 查询对应选项,完成命令操作
- 使用idea的按钮切换分支checkout
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mMe1rEoJ-1689052681206)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711103151570.png)]](https://img-blog.csdnimg.cn/221f8259701f46bba41a2f520bc720b5.png)
注意: 一般情况下,多分支开发时,个人只关心自己的分支,不关心其他人分支.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TjBO1fF1-1689052681206)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711103425364.png)]](https://img-blog.csdnimg.cn/bc7ec47d4ef24092a75d8de253f1063c.png)
- 多人协作连接远程仓库开发-对同一个分支并行开发
特点:和本地同一个分支并行开发一样的情况.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2BhGb3HB-1689052681207)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711104355550.png)]](https://img-blog.csdnimg.cn/1d25171f44174f869c3f7f70fa282c63.png)
- 处理同一个分支开发的push冲突
先pull在push,绝大部分问题,都不存在了,pull的同时,自动进行合并
有可能在pull的时候,处理冲突,没有冲突,自动合并
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fj4pHgA8-1689052681207)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711104758399.png)]](https://img-blog.csdnimg.cn/48400522a213464eb6ef18163c5ce9ef.png)
多人同时开发一个分支不合理,会造成推送 下来的不便
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmsBAS8x-1689052681207)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711105229558.png)]](https://img-blog.csdnimg.cn/2724645e9c2e486396b9342161e80d7f.png)
- 如果
pull过程有文件冲突–同一个分支多人开发
只要在pull的时候有文件的冲突问题,和本地分支合并 文件冲突解决方法是一样的.
accept yours 保留本地分支版本文件
accept theris 保留远程其他分支版本文件
merge 手动处理冲突 出现以下画面
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tXwHGCQ9-1689052681208)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711111655264.png)]](https://img-blog.csdnimg.cn/2e0201bda10f4cde8deaedaadff91da1.png)
分支管理策略
企业开发过程中,总是满足一种比较规范的分支管理策略(所有分支操作,包括远程,都已经在上述的命令,案例中包括)
gitflow: 最老版本,最规范的分支使用策略,满足版本发布特点githubflow: 满足持续发布gitlabflow: 既能满足版本发布,又能满足持续发布
版本发布: 游戏 v1.0.1 v1.1.0
持续发布: web网站
核心都是分开开发,定义分支的意义(gitflow定义分支的使用规范最全)
-
永久分支:
master: 保管的永远是稳定代码版本(几乎没有bug),什么时候代码测试的差不多了,才能合并到masterdevelop: 开发分支,所有功能推进都基于develop进行
-
临时分支
eature-XX: 新功能分支,来自于develop,XX可以是人名,可以是功能名称,不同的开发人员开发维护不同feature分支,最终合并到develop,删除release分支: 保护分支,来自于develop,目的是测试develop不影响develop开发,如果测试有问题,修改bug,合并到deveop和master,在master做版本最终上线(合并到master意味着代码要上线),归宿一定是master,可能也会合并devhot-fix: 热点修复,解决线上bug,来自于master,归宿一定是master和develop
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a8ovcHL9-1689052681209)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711114748982.png)]](https://img-blog.csdnimg.cn/e7b59c24e2134255ab7869c2b867beba.png)
一版情况下,根据公司的规模,仿照这个gitflow规范,定义公司分支的管理
大部分情况下:
- 直接发布
develop - 新功能也是基于·develop·实现的,不会使用
master
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AAPV2lhW-1689052681209)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711115353058.png)]](https://img-blog.csdnimg.cn/02406d6b8e54404ea78cc58c04eca62c.png)



















