Git 的原理与使用(下)

Git 的原理与使用(上)Git 的原理与使用(中) 中介绍了Git及其相关概念,本地与远程的Git命令操作等,本文接着以上两篇,将对Git的标签管理、多人协作与企业级开发模型三方面展开介绍。

目录

七、标签管理

1.理解标签

2.创建标签

(1)如何创建标签

(2)如何在指定的commit上打标签

(3)如何给新创建的标签添加标签说明

3.操作标签

(1)删除标签

(2)推送本地标签到远程仓库

(3)删除远程标签

八、多人协作

1.完成准备工作

2.同一分支下多人协作(不常见)

3.不同分支下多人协作(一般情况)

Pull Request流程演示

补充:本地 git branch -a 依然能看到删除的远程分支的解决办法

九、企业级开发模型

1.讲个故事

2.系统开发环境

3.Git分支设计规范

master分支

feature分支

develop分支

release分支

hotfix 分支

4.企业级项目管理实战

准备工作

DevOps研发平台

创建项目

创建仓库

添加成员

开发场景-基于gitflow模型的实践

新需求加入

修复测试环境Bug

修改预发布环境Bug

修改正式环境Bug

紧急修复正式环境Bug

拓展阅读

其他的DevOps研发平台

拓展实践

**小结


七、标签管理

1.理解标签

标签 tag,可以简单地理解为是对某次 commit 的一个标识,相当于起了一个别名。

例如,在项目发布某个版本时,通常会针对最后一次 commit 起一个 v1.0 这样的标签,来标识“里程碑”的意义。

这有什么用呢?相较于难以记住的 commit id , tag 是一个自定义的、更简短好记且有意义的标识。在当我们需要回退到某个重要版本时,直接使用标签便能很快地定位到。

2.创建标签

(1)如何创建标签

我们可以给某一次提交(commit)来“打标签”。

在Git中打标签非常简单。

首先切换到需要打标签的分支上(git chekcout <分支名>),然后敲命令

git tag [name]

就可以打上一个新标签:

git tag v1.0    # 默认对最新的一次提交进行打标签

回车之后,会默认给我们最新一次的提交打一个标签,此处打上的标签就是v1.0。

可以用命令

git tag

可以查看当前存在的所有标签(注:标签不是按时间顺序列出,而是按字母排序的):

执行tree .git,查看打了标签之后git版本库中有什么变化:

(2)如何在指定的commit上打标签

首先找到历史提交的某个commit id,然后通过命令打上即可:

# 命令
git tag [name] [commitID]

# 对44e30f7这一次提交进行打标签
git tag v0.9 44e30f7   

(3)如何给新创建的标签添加标签说明

Git 还提供了创建带有说明标签的功能。用-a指定标签名,-m指定说明文字,格式为:

git tag -a [name] -m "XXX" [commit_id]

例如: 

git tag -a v8.0 -m "important tag:xxxx" 7222302    # 对7222302这一次提交进行打标签,并附上标签说明

使用命令

git show [tag名称]

可以查看这个tag对应的详细信息,包括tag的标签说明:

3.操作标签

(1)删除标签

如果标签打错了,也可以删除:

git tag -d <tag名称>

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

(2)推送本地标签到远程仓库

本地的标签也可以推送到远程仓库中。

远端码云上也有标签一栏:

如果要推送某个标签到远程,使⽤命令

git push origin <tagname>

此时查看远端码云,可以看到标签已经被更新:

如果本地有很多标签,也可以一次性的全部推送到远端:

git push origin --tags

(3)删除远程标签

如果标签已经推送到远程,要删除远程标签,会相对麻烦一点:先从本地删除,然后把操作push到远端:

git push origin :<tag名称>

(冒号后面跟tag的名称) 

冒号后也可以跟tag的路径:

git push origin :refs/tags/v1.0

在码云上查看,已删除成功:


八、多人协作

1.完成准备工作

目前,我们已经完成了如下学习:

  • 基本完成Git的所有本地库的相关操作,git基本操作,分支理解,版本回退,冲突解决等等。

  • 申请码云账号,将远端信息clone到本地,以及推送和拉取。

为了实现多人协作开发,我们先做一些准备工作来模拟有两个用户协作开发的情景:

之前的演示中,我们已经将项目clone到了Linux主机上,那么现在我们再将同一个远程仓库clone到Windows主机上。远程仓库与主机的关系如下:

注意,在实际开发中,每个用户都有自己的Gitee或Github账号,如果要多人进行协同开发,必须要将用户添加进开发者,用户才有权限进行代码提交:

邀请用户:

至此,我们相当于有了分别在Linux和Windows上针对于同一项目进行协作开发的两个用户。关于用户的准备工作到这里就完成了。

但是目前,我们的仓库中只有一个master主分支。而在实际的项目开发中,在任何情况下其实都是不允许直接在master分支上修改代码的,这是为了保证master分支的稳定。所以在开发新功能时,常常会新建其他分支,供开发时进行迭代使用。

我们可以直接先在远程仓库新建dev分支:

创建成功:

然后,我们在Linux主机上以pull的方式,并在Windows上以clone的方式,把远端仓库同步到本地:

在Linux主机上pull的远程仓库代码

这里补充到了在本地查看远程分支的命令:

git branch -r

pull后便可以看到远程的dev分支:origin/dev,但本地并没有dev分支,因此接着要切换到本地的dev分支供我们进行本地开发。

以下命令会将本地分支和远程分支的进行关系链接:

git checkout -
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值