首页 > 其他分享 >git 分支与标签 操作

git 分支与标签 操作

时间:2023-11-07 10:35:52浏览次数:42  
标签:git name 标签 tag branch 分支

1. 标准工作流程

1.1 管理分支
Git是一个分布式版本控制系统,分支管理是其核心功能之一。分支允许开发者在不同的版本上进行并行开发,之后可以将其合并到主分支。这里我们将详细介绍如何使用Git进行分支管理。

查看分支:
要查看本地分支,可以使用以下命令:

git branch

若要查看远程分支,可以使用:

git branch -r
要同时查看本地和远程分支,可以使用:

git branch -a

创建分支:
要创建一个新分支,可以使用以下命令(将new_branch替换为实际分支名):

git branch new_branch
切换分支:
要切换到一个已有分支,可以使用以下命令(将target_branch替换为实际分支名):

git checkout target_branch
或者可以使用以下命令在创建分支的同时切换到新分支(将new_branch替换为实际分支名):

git checkout -b new_branch
合并分支:
在合并分支之前,先切换到目标分支(将target_branch替换为实际分支名):

git checkout target_branch
然后使用以下命令将指定分支合并到当前分支(将source_branch替换为实际分支名):

git merge source_branch
删除分支:
要删除一个本地分支,可以使用以下命令(将target_branch替换为实际分支名):

git branch -d target_branch
要删除一个远程分支,可以使用以下命令(将remote_name和target_branch替换为实际远程名称和分支名):

git push remote_name --delete target_branch
推送分支:
要将本地分支推送到远程仓库,可以使用以下命令(将remote_name和branch_name替换为实际远程名称和分支名):

git push remote_name branch_name
一个小例子:

假设我们有一个名为feature_x的新功能要开发,可以通过以下步骤创建并管理分支:

创建并切换到feature_x分支:

git checkout -b feature_x
开发新功能并将更改提交到feature_x分支:

git add .
git commit -m "Add feature_x"
开发完成后,切换回主分支(通常为main或master):

git checkout main
将feature_x分支合并到主分支:

git merge feature_x
将合并后的主分支推送到远程仓库:

git push origin main
如果不再需要feature_x分支,可以按照以下步骤进行删除:

首先确保已经切换到其他分支,例如主分支(main或master):
git checkout main
然后删除本地的feature_x分支:
git branch -d feature_x
如果feature_x分支已经推送到远程仓库,还需要删除远程分支。将origin替换为远程仓库的名称(通常为origin):
git push origin --delete feature_x
1.2 分支策略
主分支(Master):稳定性至关重要。禁止将未经过代码审查和测试的代码合并到此分支。主分支上的代码应随时准备好部署到生产环境。

开发分支(Develop):开发分支是持续集成的基础。经过代码审查的修改可以合并到此分支。后续的 Bug 修复和功能开发都应基于开发分支进行。开发人员在完成修改后,将代码合并回开发分支。

功能分支(Feature):功能开发和变更请求的分支。对于每个功能,可以从开发分支创建一个新的功能分支。功能开发完成、经过代码审查和测试后,将功能分支合并回开发分支。

热修复分支(Hotfix):紧急修复分支。当主分支上的代码发布到生产环境后出现问题时,可以从主分支创建一个热修复分支。修复完成后,将热修复分支合并到开发分支和主分支。

预发布分支(Release):预发布分支用于版本发布前的准备,如 v0.1、v0.2、v1.12 等。通常,系统测试基于这些分支进行。如果在预发布分支上发现 Bug,可以基于该预发布分支创建一个临时 Bug 修复分支。

Bug修复分支(Bugfix):Bug 修复分支用于解决已知问题。开发人员在定位并解决问题后,将 Bug 修复分支合并到开发分支和预发布分支。然后,测试人员进行回归测试。回归测试完成后,关闭对应的 Bug。

2. 创建标签
2.1 创建
在Git中使用标签的主要原因是对特定提交点进行标记,以便于追踪和引用。标签通常用于表示重要的里程碑,例如版本发布。与分支不同,标签是固定的,它们不会随着后续提交而移动。

创建标签有两种类型:轻量标签(lightweight)和带附注的标签(annotated)。

轻量标签:轻量标签是一个简单的引用,指向特定的提交。创建轻量标签的命令如下:

git tag tag_name
将tag_name替换为实际的标签名称。

带附注的标签:带附注的标签是存储在Git数据库中的完整对象,它们包含更多信息,如标签创建者、创建日期、附加的描述信息等。通常,我们建议使用带附注的标签,因为它们提供了更多的上下文信息。创建带附注标签的命令如下:

git tag -a tag_name -m "tag message"
将tag_name替换为实际的标签名称,将tag message替换为有关此标签的描述性消息。

创建标签后,可以使用以下命令将其推送到远程仓库:

git push origin tag_name
将tag_name替换为实际的标签名称。要一次性推送所有本地标签到远程仓库,可以使用:

git push origin --tags
2.2 签署
签署标签是为了确保标签的真实性和完整性。通过使用GPG(GNU Privacy Guard)对标签进行签名,你可以证明这个标签是由你创建的,并且自创建以来未被篡改。签署标签通常用于安全敏感的项目或在发布过程中,以确保代码的来源和完整性。

在签署标签之前,需要先设置好GPG。以下是签署标签的步骤:

安装GPG。根据你的操作系统,你可能需要从GPG官方网站下载并安装GPG工具:https://gnupg.org/

Ubuntu:sudo apt install gnupg
CentOS:sudo yun install gnupg
生成GPG密钥。打开命令行或终端,运行以下命令以开始生成密钥:

gpg --gen-key
按照提示操作,生成密钥时可能需要输入名称、电子邮件地址和密码。生成完成后,密钥将自动添加到密钥环中。

获取GPG密钥ID。运行以下命令,获取密钥ID:

gpg --list-secret-keys --keyid-format LONG
查找以sec开头的行,密钥ID是/后面的16位字符。

将GPG密钥添加到Git配置。使用刚刚获取的密钥ID(替换your_key_id):

git config --global user.signingkey your_key_id
签署标签。使用-s或--sign选项创建带附注的标签,并使用GPG密钥进行签名:

git tag -a -s tag_name -m "tag message"
将tag_name替换为实际的标签名称,将tag message替换为有关此标签的描述性消息。

验证签名。要验证签名,可以使用以下命令:

git tag -v tag_name
将tag_name替换为实际的标签名称。如果签名有效,将看到类似于Good signature from <your_name>的消息。

3. 操作标签
创建完标签(tag)后,你可以执行以下操作:

查看标签列表:运行以下命令来查看所有已创建的标签:

git tag
带有-l或--list选项可以过滤标签,如:

git tag -l "v1.*"
这将显示以v1.开头的所有标签。

查看特定标签的详细信息:要查看带附注标签的详细信息(包括创建者、创建日期和标签信息),可以运行:

git show tag_name
将tag_name替换为实际的标签名称。

检出标签:要检出特定标签,可以运行:

git checkout tag_name
将tag_name替换为实际的标签名称。这将让你查看和测试特定标签的代码状态。注意,当你检出标签时,你将进入“分离头指针”状态,这意味着你不在任何分支上。如果你需要在此基础上进行修改,请创建一个新的分支。

删除标签:要删除本地标签,可以运行:

git tag -d tag_name
将tag_name替换为实际的标签名称。要删除远程标签,需要先删除本地标签,然后运行:

git push origin --delete tag_name
将tag_name替换为实际的标签名称。

标签:git,name,标签,tag,branch,分支
From: https://www.cnblogs.com/it-xiong/p/17814443.html

相关文章

  • Loftware——重新定义创建、管理和打印标签的方式
    重新定义创建、管理和打印标签的方式Loftware帮助各种规模的企业管理其运营和供应链中的标签。无论您拥有五台还是数千台打印机,寻找云还是本地打印机,我们都能提供适合您业务需求的标签解决方案。 全面的标签解决方案01、一体化标签解决方案通过将整个标签打印流程标准化到一......
  • 多分类问题:模型输出结果,和标签的顺序
     背景:在多分类问题中,模型输出的结果是一个矩阵,某个值为1,其他的值为0.怎么知道值为1的那个位置,代表的是哪个标签?? 二分类常见的约定的惯例第一个位置通常对应"负类别":这是因为通常情决定了负类别是标签0或其他表示非目标类别的值。第二个位置通常对应"正类别":同样地,正......
  • 11月6日列表、标题、表格、基本、块级标签以及特殊符号
    目录列表标签无序列表注意点有序列表标签标题标签表格标签然后就是table标签属性的用法1.border属性:2.cellpadding属性:3.cellspacing属性:width属性5.rowspan属性6.colspan属性还有一个特别的属性就是高度和宽度基本标签块级标签特殊符号如何在html实现的方法列表标签列表标签分......
  • gitlab 设置 分支只读
    一,设置master分支只读,并且只有Maintainers拥有合并权限。 二,设置成员权限改为developer 三,邀请成员点击右上角InviteMembers  ......
  • Git常用命令记录
    克隆xxx项目gitclonehttp://git.xxx.vip/xxx.git克隆xxx项目下的单个xxx目录gitclonehttp://git.xxx.vip/xxx.gitxxx克隆xxx项目下的xxx分支单个xxx目录gitclone-bxxxhttp://git.xxx.vip/xxx.gitxxx查看本地分支gitbranch查看所有远程分支gitbranch-r查看本......
  • Git的使用--如何将本地项目上传到Github
    https://blog.csdn.net/NHB456789/article/details/131596777https://blog.csdn.net/Charles_Tian/article/details/80842439......
  • jenkins gitlab CI/CD
    jenkins的安装教程就不说了:https://blog.csdn.net/hanjun0612/article/details/103614979最近打算从svn切换到gitlab,所以配置了一下jenkins的git 很简单,直接上图1选择Git2录入gitlab的http地址(由于我的git地址不是22端口,所以没有配置成功,暂时用的http地址clone)3录入登......
  • picgo搭配github实现永久图床
    picgo简介picgo是一个图片上传工具,当我们在里面配置好存储源时,就可以使用该工具实现图片上传。官网:Releases·Molunerfinn/PicGo(github.com)如何配置picogo首先我们在github里面新建一个仓库,用来存储我们的图片记录下这些关键字符串。随后,我们去获取github的token,方便......
  • 实验二 C语言分支与循环基础应用
    1.实验11#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13747#defineN246589intmain()10{11intnumber;12inti;1314srand(time(0));1516for(i=......
  • Git项目过大清理
    1.查看有哪些大文件gitrev-list--objects--all|grep"$(gitverify-pack-v.git/objects/pack/*.idx|sort-k3-n|tail-10|awk'{print$1}')"2.移除对该文件的引用gitfilter-branch--force--index-filter'gitrm-rf--cached--ignore-unmatch文件/......