git 项目开发流程;rebase个merge的区别

在工作中一般远程仓库有masterdevelop分支,日常开发在develop分支中进行

1.一般来说开发流程如下:

1.首次 克隆代码 git clone http://xxx.xxx.git ---------不是首次的话 拉取新的代码 git pull origin develop

2.git branch --all 查看当前分支

3.如果在develop分支,从develop创建新的本地分支 git checkout -b develop-x develop ,或者转到自己的分支用于本地开发使用,如果不是第一次,就将新拉取的develop代码合并到自己的分支下git rebase develop 进行开发:

4.开发提交代码的流程

1)git add . 将代码提交到暂存区

2)git commit -m "描述" 将代码提交到历史区

5.将分支push到远端,在push之前先拉取develop分支最新代码,本地merge解决冲突,然后 git push origin develop-x:develop-x (冒号后面为远端分支的名称)

6.对于开发成员来说这一步一般在gitLab,创建合并请求,组长进行合并处理

2.git中分区的概念:

1.工作区:正在编辑的代码

2.暂存区:临时存储要生成版本代码的地方

3.历史区:存储的是生成的每一个版本代码

3.一般开发就在这三个区中进行转换常用的操作命令有:

1.提交到暂存区 git add .
2.提交到历史区 git commit -m "摘要"
3.clone指定分支代码 git clone -b dev https://xxx.git

4.回滚操作
1)暂存区回滚到工作区 git checkout -- .
2)当前暂存区 回滚到上一个暂存区 git reset HEAD .
3)历史区中回退到某一个版本 git rest --hard 大致流程

5.关于查看自己的操作信息
1)git status 查看当前的文件状态,红色代表在工作区,绿色代表在暂存区,没有文件说明已经同步到了历史区
2)git log 查看当历史区的提交记录
3)git reflog 查看所有历史记录 包含回滚后的
如下图:

在这里插入图片描述

4.还有一个比较重要的概念就是分支:
1.Master分支:

一个项目的代码库应该有且只有一个主分支,所有提供给用户使用的正式版本

2.Develop分支:

日常使用的开发分支。这个分支可以用来生成代码的隔夜版本,如果开发功能测试完成后,想正式对外发布,就在Master分支上,对Develop分支进行“合并”(Merge)。

3.临时分支
1)功能分支:
它是为了开发某种特定的功能,从`Develop`分支上分出来,其命名规范:`feature-*`   	
2)预发布分支:

在发布到正式版本之前,我们可能需要有一个预发布版本进行测试。从Develop分支上分出来其命名规范:release-*

3)修补Bug分支:

软件正式发布后,出现一些Bug,这时就需要创建一个分支,来进行Bug修复
,从master分支中分出来, 其命名规范:fixbug-*

5.分支常用命令:

1.创建并切换到此分支 git checkout -b develop(新分支名) master(从这个分支进行分支)
2.删除分支 git branch -d develop(分支名)
3.查看分支 git branch --all
4.切换分支 git checkout develop
5.创建分支 git branch develop
6.与远程分支进行关联 git checkout -b develop origin/develop

6.tag的概念

tag是git版本库的一个标记,指向某个commit的指针。
tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 …这样的标签。
tag感觉跟branch有点相似,但是本质上和分工上是不同的:
tag 对应某次commit, 是一个点,是不可移动的。
branch 对应一系列commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。
所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag。
tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如:已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch ,然后作为开发分支。

7.tag的基本使用流程
1. 创建

(1) 创建 tag 是基于本地分支的 commit,而且与分支的推送是两回事,就是说分支已经推送到远程了,但是你的 tag 并没有,如果把 tag 推送到远程分支上,需要另外执行 tag 的推送命令。
(2) git tag //创建本地tag
(3) git push origin //推送到远程仓库
(4) git push origin --tags //一次全部推送的话
以上是基于本地当前分支的最后的一个commit 创建的 tag
(5) 以某一个特定的提交为tag
git log --pretty=oneline //查看当前分支的提交历史 里面包含 commit id
git tag -a

2. 查看

(1) git show 查看本地某个 tag 的详细信息
(2) git tag 或者 git tag -l 查看本地所有 tag
(3) git ls-remote --tags origin 查看远程所有 tag

3. 删除

(1) 本地 tag 的删除:git tag -d
(2) 远程 tag 的删除:git push origin :

4. 检出标签

(1) git checkout -b
(2) 因为 tag 本身指向的就是一个 commit,所以和根据commit id 检出分支是一个道理。

7.rebase和merge的区别

最近看一个up主大翔的视频,我觉得他讲的很清晰,有兴趣的可以去搜索,这里附上他视频的截图

rebase:

在这里插入图片描述
在合并的时候会解决每一个当前分支后续commit的与要合并后续commit的冲突,如果每一个commit都有那就要一直解决多个冲突,最后会将当前分支的commit接在合并分支commit的后面

merge:

在这里插入图片描述
merge会对比出所有commit的冲突,然后一次性解决,然后解决后重新commit一个版本,此版本是解决过冲突的,所以后续如果在合并时,只需要与此commit进行对比。合并后的commit历史记录中会按照时间顺序进行排序。
如有错误请及时提出改正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木林_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值