当前位置: 首页 > news >正文

git工作流程

git工作流程

本文会展示一次完整的操作流程,组内的成员,可以按照这个流程来进行开发操作。这里我使用Linux系统(Ubuntu20.04)来给大家操作,其他系统也是类似的。

Windows系统的教程链接在: 3.安装git和图形化界面工具_哔哩哔哩_bilibili

安装git

查看是否装有git

⾸先,你可以试着输⼊git,看看系统有没有安装Git:

$ git
Command 'git' not found, but can be installed with:
sudo apt install git

出现像上⾯的结果,Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。

安装Git:

sudo apt-get install git -y

查看git安装的版本:

git --version# 示例:
lx@emperor:~/working$ git --version
git version 2.25.1

将远程仓库克隆到本地

如果使用HTTPS协议,那么我们每一次推送都要输入口令什么的,很麻烦,所以建议大家使用SSH协议将远程仓库克隆到本地。

第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件。如果有可以直接到下一步,如有没有,则需要创建SSH Key

# 这里的邮箱要输入自己的邮箱,然后一路回车,使用默认值就ok
lx@emperor:~$ ssh-keygen -t rsa -C "2365683556@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lx/.ssh/id_rsa): 
Created directory '/home/lx/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/lx/.ssh/id_rsa
Your public key has been saved in /home/lx/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:LibCH2I3vueM/AyGDTFsdV1pIu4nseHXqfCylQr3HdI 2365683556@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|    . .. ...     |
| . . .. o o      |
|  =  . . o       |
| . o  +          |
|  .  o +S. .     |
| . +  *.ooo      |
|  * X +*=.E      |
| . O %o=oo .     |
|    *=Bo. .      |
+----[SHA256]-----+
lx@emperor:~$ 
lx@emperor:~$ ll .ssh/
total 16
drwx------ 2 lx lx 4096 Nov 10 13:09 ./
drwxr-xr-x 8 lx lx 4096 Nov 10 13:09 ../
-rw------- 1 lx lx 2602 Nov 10 13:09 id_rsa
-rw-r--r-- 1 lx lx  571 Nov 10 13:09 id_rsa.pub

注意id_rsa是私钥,是不能泄露的,id_rsa.pub是公钥,可以告诉任何人。

第二步:添加自己的公钥到远程仓库(获取公钥)

lx@emperor:~$ cd .ssh
lx@emperor:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCooaRXPj2xLctQwScTNlsPp9YwW5iDGRXKseWqyQ8goTKn1UmAOetcTFWZSYjeIV6z27JQNveC7+aYdFg+XonYJay+hBFpz4ypRFROS1G7Bo0Cq6MOpHjb6tmY+ipTncCliBolLPyFdzOvqGz7wv2bmVg31bjPOEyKi/rLaVW1mK4JxZ57LLvBGdhK14v/jghKtSjMYxg00WHoJvXzRhwRD6IMyHrx+S5NQYCIXq/WkFinaXh2NEEC+ZCrzQQXu3Qx2bR8rTmDLniS2b37uqMqHtji1WD+TPpk/J5dgM2T3wuSOGoBi42ZnN3huqPmRF8eAihKNDpsaiuEGhR6iVOTtvZioa2bWja8CQsxWz5WepKqRN6JweZOWO/e7fWj0eAl0wSnFR3M0Vj8bEr16lWEJUBKGtBx2kZ40eaYg2b9vOhg29v0EL5YBI7pa9dfXohYMhWClib8H3HWpxhENd8PHUJ2hXuUEudnzGozXAidcdislSs4Q628B8s9BE8aPPc= 2365683556@qq.com

然后到gitee,去到设置,设置里找到 “SSH公钥” 然后添加公钥。
在这里插入图片描述

只要把每个人的电脑上的Key都添加到GitHub/Gitee,就可以在每台电脑上往GitHub/Gitee上提交推送了。

第三步

将远程仓库克隆到本地:

# 命令在gitee会提供
lx@emperor:~/working$ git clone git@gitee.com:lxdian-lx/team_test.git
Cloning into 'team_test'...
The authenticity of host 'gitee.com (180.76.198.225)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitee.com,180.76.198.225' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (8/8), done.
lx@emperor:~/working$ ll
total 16
drwxrwxr-x  4 lx lx 4096 Nov 10 13:16 ./
drwxr-xr-x  8 lx lx 4096 Nov 10 13:09 ../
drwxrwxr-x 10 lx lx 4096 Nov  6 15:10 d47/
drwxrwxr-x  4 lx lx 4096 Nov 10 13:17 team_test/
# 进到本地仓库,配置本地仓库的信息
lx@emperor:~/working$ cd team_test/
lx@emperor:~/working/team_test$ git config -l
user.name=lxdian-lx
user.email=2365683556@qq.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=git@gitee.com:lxdian-lx/team_test.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

配置指令

由于我已经配置过了,所以就直接显示配置好了,大家可以使用下面的指令进行配置:

git config [--global] user.name  "Your Name"   
git config [--global] user.email "email@example.com"  
# 把 Your Name 改成你的昵称
# 把 email@example.com 改成邮箱的格式,只要格式正确即可。

我们使用的远程仓库是gitee, 所以用户名称和邮箱地址就是你gitee中的用户名称和邮箱地址.


--global是一个可选项, 如果使用了这个选项, 表示这台机器上所有的Git仓库都会使用这个配置. 如果你希望在不同的仓库中使用不同namee-mail , 可以不要使用--global选项, 需要注意的是: 执行命令的时候必须在你创建的仓库中.

查看配置命令:

git config -l

删除对应的配置的命令为:

git config [--global] --unset user.name
git config [--global] --unset user.email

注意: 如果你配置的时候使用了--global选项, 则你删除的时候也需要使用到--global选项, 否则是删除不成功的.


完整示例:

lx@emperor:~/working/team_test$ git config -l # 查看配置
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
lx@emperor:~/working/team_test$ git config user.name lxdian-lx # 设置用户名
lx@emperor:~/working/team_test$ git config user.email 2365683556@qq.com # 设置邮箱
lx@emperor:~/working/team_test$ git config -l # 查看设置
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
user.name=lxdian-lx
user.email=2365683556@qq.com

开发流程

第一步:

在gitee中,以develop分支为起点,创建一个新分支:

在这里插入图片描述

第二步:

创建成功的分支,我们通过git pull拉取到本地来:

lx@emperor:~/working/team_test$ git pull
Warning: Permanently added the ECDSA host key for IP address '180.76.198.77' to the list of known hosts.
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (3/3), 281 bytes | 281.00 KiB/s, done.
From gitee.com:lxdian-lx/team_teste098b4d..fdd11c5  develop                        -> origin/develop* [new branch]      feature/lzw_20251110_team-test -> origin/feature/lzw_20251110_team-test
Already up to date.
lx@emperor:~/working/team_test$ git branch -rorigin/HEAD -> origin/masterorigin/developorigin/feature/lzw_20251110_team-testorigin/master

然后,我们就可以切换到feature/lzw_20251110_team-test分支,供我们进行本地开发:

命令是:git checkout -b feature/lzw_20251110_team-test origin/feature/lzw_20251110_team-test

lx@emperor:~/working/team_test$ git checkout -b feature/lzw_20251110_team-test origin/feature/lzw_20251110_team-test
Branch 'feature/lzw_20251110_team-test' set up to track remote branch 'feature/lzw_20251110_team-test' from 'origin'.
Switched to a new branch 'feature/lzw_20251110_team-test'

这里解释一下这个指令:

git checkout -b feature/lzw_20251110_team-test origin/feature/lzw_20251110_team-test

这个命令做了以下几件事情:

命令分解

各部分含义:

  • git checkout- 切换分支的命令
  • -b- 创建新分支的选项
  • feature/lzw_20251110_team-test- 要创建的本地分支名称
  • origin/feature/lzw_20251110_team-test- 基于的远程分支

具体执行的操作:

  1. 创建本地分支:在本地新建一个名为 feature/lzw_20251110_team-test的分支
  2. 设置跟踪关系:让这个本地分支跟踪远程的 origin/feature/lzw_20251110_team-test分支
  3. 切换分支:立即切换到新创建的分支
  4. 拉取代码:自动将远程分支的最新代码拉取到本地新分支

相当于以下多个命令的组合:

# 创建本地分支(基于远程分支)
git branch feature/lzw_20251110_team-test origin/feature/lzw_20251110_team-test# 设置上游跟踪
git branch --set-upstream-to=origin/feature/lzw_20251110_team-test feature/lzw_20251110_team-test# 切换到该分支
git checkout feature/lzw_20251110_team-test# 拉取最新代码
git pull

使用场景

这个命令通常在以下情况下使用:

  • 团队其他成员创建了远程分支,你需要在本地方便地基于该分支工作
  • 你想要在本地创建一个与远程分支同名且有关联的分支
  • 避免手动创建分支和设置上游的繁琐步骤

验证结果

执行后可以验证:

# 查看当前分支
git branch -vv# 查看远程分支关联
git status

示例

lx@emperor:~/working/team_test$ git branch -vv
* feature/lzw_20251110_team-test fdd11c5 [origin/feature/lzw_20251110_team-test] 用于测试master                         e098b4d [origin/master] Initial commit

第三步:

你就可以开始进行开发了,接下来是示例:

lx@emperor:~/working/team_test$ vim team_test.txt 
lx@emperor:~/working/team_test$ cat team_test.txt 
hello nihao!
bbbbbbbbbbbb
lx@emperor:~/working/team_test$ git add .
lx@emperor:~/working/team_test$ git commit -m "docs: 添加了一行bbbbbb"
[feature/lzw_20251110_team-test 7ea1665] docs: 添加了一行bbbbbb1 file changed, 2 insertions(+), 1 deletion(-)
lx@emperor:~/working/team_test$ git push origin feature/lzw_20251110_team-test 
Warning: Permanently added the ECDSA host key for IP address '180.76.199.13' to the list of known hosts.
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 299 bytes | 299.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 2f48f68e
To gitee.com:lxdian-lx/team_test.gitfdd11c5..7ea1665  feature/lzw_20251110_team-test -> feature/lzw_20251110_team-test
lx@emperor:~/working/team_test$ 

我修改了原本的team_test.txt文件,添加了一行b。

然后我将我的操作,推送到了远程仓库中的feature/lzw_20251110_team-test分支中。

第四步:

接下来我们就开始合并分支。在工作手册中我就说过,你在开发的过程中,远程仓库中的develop分支可能已经改变了,所以这个时候,你直接进行合并,就有可能会出现冲突,所以,我建议大家可以按照下面的步骤来走:(我已经改变了develop分支中的team_test.txt文件同一个位置,所以直接进行合并,一定会冲突)

第一步:拉取远程仓库中的内容到本地

lx@emperor:~/working/team_test$ git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (3/3), 272 bytes | 272.00 KiB/s, done.
From gitee.com:lxdian-lx/team_testfdd11c5..aa07353  develop    -> origin/develop
Already up to date.

第二步:在你需要合并的新分支中,先合并develop分支中的内容。

lx@emperor:~/working/team_test$ git merge --no-ff -m "feature1分支合并develop分支" origin/develop
Auto-merging team_test.txt
CONFLICT (content): Merge conflict in team_test.txt
Automatic merge failed; fix conflicts and then commit the result.
lx@emperor:~/working/team_test$ cat team_test.txt 
hello nihao!
<<<<<<< HEAD
bbbbbbbbbbbb
=======
aaaaaaaaaaa
>>>>>>> origin/develop

注意:这里我推荐大家使用--no-ff模式进行合并,这样我们就可以看到清晰的合并历史,能看出来曾经做过合并。

不出我们所料,develop分支中的内容和我们新创建的feature/lzw_20251110_team-test内容有冲突,所以我们就要手动的处理好这其中的冲突。

第三步:解决冲突并重新提交

这里我先给大家解释一下这个冲突的意思:

hello nihao!
<<<<<<< HEAD
bbbbbbbbbbbb
=======
aaaaaaaaaaa
>>>>>>> origin/develop

=======是分割线,以上的内容是HEAD指针指向的分支,其实也就是当前分支的内容,在这个例子中,也就是feature/lzw_20251110_team-test分支中的内容。也就是我们一开始开发的内容

以下就是远程仓库develop分支中的内容。

遇到冲突的时候,建议还是找到各自的负责人,把冲突发群上,找到双方协商处理冲突。

这里我就直接处理了。我直接把team_test.txt改成了:

lx@emperor:~/working/team_test$ cat team_test.txt 
hello nihao!
bbbbbbbbbbbb
aaaaaaaaaaa

处理完冲突后,一定要重新提交一遍,否则是无用的:

lx@emperor:~/working/team_test$ git add .
lx@emperor:~/working/team_test$ git commit -m "docs:解决feature分支和develop分支的冲突"
[feature/lzw_20251110_team-test 36f18d3] docs:解决feature分支和develop分支的冲突
lx@emperor:~/working/team_test$ git push origin feature/lzw_20251110_team-test 
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 348 bytes | 348.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 1b487ea9
To gitee.com:lxdian-lx/team_test.git7ea1665..36f18d3  feature/lzw_20251110_team-test -> feature/lzw_20251110_team-test

第五步:

处理好冲突后,你就可以开始写pull request向管理员提交合并申请了:

在这里插入图片描述

提交申请后,就需要管理员或者测试人员审核:

在这里插入图片描述

测试和审查通过后,就可以由管理员进行合并:

在这里插入图片描述

合并后,我们就能看到develop分支中内容的变化了:

在这里插入图片描述

第六步:

使用完feature/lzw_20251110_team-test分支后,手动将其删除:

在这里插入图片描述

测试流程

第一步:

以develop分支为起点,创建一个新分支,示例:

在这里插入图片描述

第二步:

创建成功的分支,我们通过git pull拉取到本地来:

lx@emperor:~/working/team_test$ git pull
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (1/1), 959 bytes | 959.00 KiB/s, done.
From gitee.com:lxdian-lx/team_testaa07353..10f4ee6  develop                 -> origin/develop* [new branch]      release/v1.1.0_20251111 -> origin/release/v1.1.0_20251111
Your configuration specifies to merge with the ref 'refs/heads/feature/lzw_20251110_team-test'
from the remote, but no such ref was fetched.

然后,我们就可以切换到release/v1.1.0_20251111分支,供我们进行本地测试

命令是:git checkout -b release/v1.1.0_20251111 origin/release/v1.1.0_20251111

lx@emperor:~/working/team_test$ git checkout -b feature/lzw_20251110_team-test origin/feature/lzw_20251110_team-test
Branch 'feature/lzw_20251110_team-test' set up to track remote branch 'feature/lzw_20251110_team-test' from 'origin'.
Switched to a new branch 'feature/lzw_20251110_team-test'

我们可以查看一下:

lx@emperor:~/working/team_test$ git branch -vvfeature/lzw_20251110_team-test 36f18d3 [origin/feature/lzw_20251110_team-test] docs:解决feature分支和develop分支的冲突master                         e098b4d [origin/master] Initial commit
* release/v1.1.0_20251111        10f4ee6 [origin/release/v1.1.0_20251111] !1 我开发了一行bbbbb Merge pull request !1 from Murphy/feature/lzw_20251110_team-test# 一开始我还没删除本地的feature分支,大家用完分支之后,可以将其删除掉
lx@emperor:~/working/team_test$ git branch -d feature/lzw_20251110_team-test 
Deleted branch feature/lzw_20251110_team-test (was 36f18d3).lx@emperor:~/working/team_test$ git branch -vvmaster                  e098b4d [origin/master] Initial commit
* release/v1.1.0_20251111 10f4ee6 [origin/release/v1.1.0_20251111] !1 我开发了一行bbbbb Merge pull request !1 from Murphy/feature/lzw_20251110_team-test

第三步:

第三步就是测试人员在本地进行测试了,我就不多赘述了,我也不会。

第四步:

接下来我们就开始合并分支。在工作手册中我就说过,你在开发或者测试的过程中,远程仓库中的master分支可能已经改变了,所以这个时候,你直接进行合并,就有可能会出现冲突,所以,我建议大家可以按照下面的步骤来走:(我已经改变了master分支中的team_test.txt文件同一个位置,所以直接进行合并,一定会冲突)

第一步:拉取远程仓库中的内容到本地

lx@emperor:~/working/team_test$ git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (3/3), 277 bytes | 277.00 KiB/s, done.
From gitee.com:lxdian-lx/team_teste098b4d..dbe013c  master     -> origin/master
Already up to date.

第二步:在你需要合并的新分支中,先合并master分支中的内容。

lx@emperor:~/working/team_test$ git merge --no-ff -m "release1分支合并master分支" origin/master 
Auto-merging team_test.txt
CONFLICT (content): Merge conflict in team_test.txt
Automatic merge failed; fix conflicts and then commit the result.
lx@emperor:~/working/team_test$ cat team_test.txt 
hello nihao!
<<<<<<< HEAD
bbbbbbbbbbbb
aaaaaaaaaaa
=======
ccc
aaaaaaaaaaa
>>>>>>> origin/master

第三步:解决冲突并重新提交:

遇到冲突的时候,建议还是找到各自的负责人,把冲突发群上,找到双方协商处理冲突。

这里我就直接处理了。我直接把team_test.txt改成了:

lx@emperor:~/working/team_test$ cat team_test.txt 
hello nihao!
<<<<<<< HEAD
bbbbbbbbbbbb
aaaaaaaaaaa
=======
ccc
aaaaaaaaaaa
>>>>>>> origin/masterlx@emperor:~/working/team_test$ vim team_test.txt 
lx@emperor:~/working/team_test$ cat team_test.txt 
hello nihao!
bbbbbbbbbbbb
aaaaaaaaaaa
ccc
aaaaaaaaaaa

处理完冲突后,一定要重新提交一遍,否则是无用的:

lx@emperor:~/working/team_test$ git add .
lx@emperor:~/working/team_test$ git commit -m "docs:我解决了release分支和master分支的冲突"
[release/v1.1.0_20251111 26d339b] docs:我解决了release分支和master分支的冲突
lx@emperor:~/working/team_test$ git push origin release/v1.1.0_20251111 
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 2 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 360 bytes | 360.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 5a4d5787
To gitee.com:lxdian-lx/team_test.git10f4ee6..26d339b  release/v1.1.0_20251111 -> release/v1.1.0_20251111

第五步:

这里需要注意一下的就是,我们小版本的更新是不会合并到master分支的,是合并到develop分支的。只有大版本更新的时候,我们才会将合并到master分支中,由于合并分支的内容是类似的,这里我就以小版本的合并给大家演示:

处理好冲突后,你就可以开始写pull request向管理员提交合并申请了:

在这里插入图片描述

提交申请后,就需要管理员或者测试人员审核:

在这里插入图片描述

测试和审查通过后,就可以由管理员进行合并:

在这里插入图片描述

合并后,我们就能看到develop分支中内容的变化了:

在这里插入图片描述

第六步:

使用完release/v1.1.0_20251111分支后,手动将其删除:

在这里插入图片描述

打标签

打标签的任务交给测试人员以及管理人员共同操作。测试人员测试好一次大版本后,和管理员商量打上标签。

这里我直接将release/v1.1.0_20251111分支中的内容合并到master分支中,作为第一版大版本。

在我还没合并之前,我们查看commit日志是这样的:

lx@emperor:~/working/team_test$ git log 
commit dbe013c2df0d83391461dd4de7fd9adcdab59dbc (HEAD -> master, origin/master, origin/HEAD)
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 15:01:13 2025 +0800docs:我加了一行ccccommit aa07353893778e16650fb1a0cd925f08b77e1ad3
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 14:05:04 2025 +0800docs: 添加了一行aaaacommit fdd11c5b7cbb563f0b05d2532acbf43738d39b35
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 13:31:44 2025 +0800用于测试commit e098b4df1dd6bc6e0284a731b4d3c956495f4bdc
Author: Murphy <2365683556@qq.com>
Date:   Mon Nov 10 02:23:38 2025 +0000Initial commit

将release分支和master分支合并后,记得使用git pull,把远程仓库的修改拉取下来到本地仓库:

lx@emperor:~/working/team_test$ git pull
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (1/1), 986 bytes | 986.00 KiB/s, done.
From gitee.com:lxdian-lx/team_testdbe013c..3252933  master     -> origin/master
Updating dbe013c..3252933
Fast-forwardteam_test.txt | 4 +++-1 file changed, 3 insertions(+), 1 deletion(-)

然后我们再次查看commit日志:

lx@emperor:~/working/team_test$ git log 
commit 3252933ac6f7fae1ed9ba14e971e264f2324de61 (HEAD -> master, origin/master, origin/HEAD)
Merge: dbe013c 26d339b
Author: Murphy <2365683556@qq.com>
Date:   Mon Nov 10 07:27:48 2025 +0000!3 docs:我解决了release分支和master分支的冲突Merge pull request !3 from Murphy/release/v1.1.0_20251111commit 26d339bd24a1b21d532e7561e52eb476996fbd85 (origin/release/v1.1.0_20251111, release/v1.1.0_20251111)
Merge: 10f4ee6 dbe013c
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 15:06:47 2025 +0800docs:我解决了release分支和master分支的冲突commit dbe013c2df0d83391461dd4de7fd9adcdab59dbc
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 15:01:13 2025 +0800docs:我加了一行ccccommit 10f4ee6a6ef16fe84d36aae2621ab633fd76b671
Merge: aa07353 36f18d3
Author: Murphy <2365683556@qq.com>
Date:   Mon Nov 10 06:42:48 2025 +0000!1 我开发了一行bbbbbMerge pull request !1 from Murphy/feature/lzw_20251110_team-testcommit 36f18d3ad1d4c6adbc299acfd414eee05d302570 (origin/feature/lzw_20251110_team-test)
Merge: 7ea1665 aa07353
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 14:30:05 2025 +0800docs:解决feature分支和develop分支的冲突commit 7ea1665dd00658ca20a5b7ce76ea0f9209523dd4
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 14:07:57 2025 +0800docs: 添加了一行bbbbbbcommit aa07353893778e16650fb1a0cd925f08b77e1ad3
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 14:05:04 2025 +0800docs: 添加了一行aaaacommit fdd11c5b7cbb563f0b05d2532acbf43738d39b35
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 13:31:44 2025 +0800用于测试commit e098b4df1dd6bc6e0284a731b4d3c956495f4bdc
Author: Murphy <2365683556@qq.com>
Date:   Mon Nov 10 02:23:38 2025 +0000Initial commit

这个时候我们就可以对master版本进行打标签了,打标签的时候,需要在打标签的那个分支下面:

lx@emperor:~/working/team_test$ git branch 
* masterrelease/v1.1.0_20251111

正式的打标签

lx@emperor:~/working/team_test$ git tag v1.0
lx@emperor:~/working/team_test$ git show v1.0
commit 3252933ac6f7fae1ed9ba14e971e264f2324de61 (HEAD -> master, tag: v1.0, origin/master, origin/HEAD)
Merge: dbe013c 26d339b
Author: Murphy <2365683556@qq.com>
Date:   Mon Nov 10 07:27:48 2025 +0000!3 docs:我解决了release分支和master分支的冲突Merge pull request !3 from Murphy/release/v1.1.0_20251111lx@emperor:~/working/team_test$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 0c43d795
To gitee.com:lxdian-lx/team_test.git* [new tag]         v1.0 -> v1.0

在这里插入图片描述


在这里插入图片描述


打标签的指令是:

git tag [name]

可以使用git tag查看所有标签:

lx@emperor:~/working/team_test$ git tag 
v1.0

默认标签和指定标签

默认标签是打在最新提交的commit上的,所以如果你想在指定的commit上打标签,我们就可以先查找commit历史,然后使用指定的commit id来打标签:

lx@emperor:~/working/team_test$ git tag 
v1.0
# 下面那个指令就是查看简洁的commit历史,前面的是简写的commit id
lx@emperor:~/working/team_test$ git log --pretty=oneline --abbrev-commit
3252933 (HEAD -> master, tag: v1.0, origin/master, origin/HEAD) !3 docs:我解决了release分支和master分支的冲突 Merg
26d339b (origin/release/v1.1.0_20251111, release/v1.1.0_20251111) docs:我解决了release分支和master分支的冲突
dbe013c docs:我加了一行ccc
10f4ee6 !1 我开发了一行bbbbb Merge pull request !1 from Murphy/feature/lzw_20251110_team-test
36f18d3 (origin/feature/lzw_20251110_team-test) docs:解决feature分支和develop分支的冲突
7ea1665 docs: 添加了一行bbbbbb
aa07353 docs: 添加了一行aaaa
fdd11c5 用于测试
e098b4d Initial commitlx@emperor:~/working/team_test$ git tag v0.9 dbe013clx@emperor:~/working/team_test$ git tag 
v0.9
v1.0lx@emperor:~/working/team_test$ git show v0.9
commit dbe013c2df0d83391461dd4de7fd9adcdab59dbc (tag: v0.9)
Author: lxdian-lx <2365683556@qq.com>
Date:   Mon Nov 10 15:01:13 2025 +0800docs:我加了一行cccdiff --git a/team_test.txt b/team_test.txt
index 911ada3..72591cc 100644
--- a/team_test.txt
+++ b/team_test.txt
@@ -1,2 +1,3 @@hello nihao!
+cccaaaaaaaaaaa
\ No newline at end of file

我们可以使用git show [tagname]来查看标签的信息。上面已经展示过了。


删除标签

删除标签的指令是git tag -d [tagname],示例:

lx@emperor:~/working/team_test$ git tag -d v0.9
Deleted tag 'v0.9' (was dbe013c)
lx@emperor:~/working/team_test$ git tag 
v1.0

推送某个标签到远程

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

如果想要推送某个标签到远程,可以使用指令git push origin [tagname]。具体的我已经在上面展示过了。

如果本地有很多标签,想一次推送到远程,则可以使用git push origin --tags,一次性把所有标签推送到远程。


删除远程仓库中的标签

第一步:先在本地删除:

lx@emperor:~/working/team_test$ git tag 
v1.0
lx@emperor:~/working/team_test$ git tag -d v1.0
Deleted tag 'v1.0' (was 3252933)
lx@emperor:~/working/team_test$ git tag 
lx@emperor:~/working/team_test$ 

第二步:从远程删除,格式如下:

git push origin :refs/tags/v1.0  # v1.0在实际中,换成对应的标签名

示例:

lx@emperor:~/working/team_test$ git push origin :refs/tags/v1.0
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag a44a3897
To gitee.com:lxdian-lx/team_test.git- [deleted]         v1.0

这个时候标签就已经从远程删除了:

在这里插入图片描述

http://www.dtcms.com/a/593936.html

相关文章:

  • 网上商城网站建设设计方案怎样辨别自己网站的好坏
  • 安徽亳州建设厅网站员工信息查询系统
  • YOLOv5(三):Jupyter
  • 1.postman调用契约锁接口
  • 代刷网站推广如何用网站模板做网站
  • 前端学校网站开发视频教程廊坊设计网站公司
  • 实例介绍:Unittest框架及自动化测试实现流程
  • NAS 只在局域网能用?加上cpolar这样设置让文件访问不受限
  • web网页,在线%茶叶商城系统%系统demo,基于vscode,vue,java,jdk,springboot,mysql
  • 青岛seo网站管理网站这么推广
  • MATLAB数值分析方程求解方法详解
  • vue 不触发自动播放音频
  • 17做网站新塘牛仔城购物网站 英文介绍
  • 嘉兴建设工程造价信息网站如何做wordpress主题
  • 【把Linux“聊”明白】从冯诺依曼架构到操作系统
  • SEO 搜索优化测试环节深度解析:决定流量转化的隐性关键
  • NumPy性能密码:Python循环优化方法
  • 九洋建设官方网站wordpress 文章标题查询
  • 线性代数 - 齐次线性方程组的样子
  • TikTok矩阵运营的提速方法
  • 酒店如何做团购网站贵州省民贸民品企业信息管理系统
  • 海口网站开发抚州市临川区建设局网站
  • 如何做网站的二级页面马鞍山建设机械网站
  • 国外有什么网站做游戏吗深圳全网营销
  • Python 数据类(dataclass)深度解析与 Pydantic 对比
  • 从C内存管理进阶到C++内存管理(中)-new与delete详解
  • 免费注册域名网站餐饮营销型网站建设
  • 深入理解 Java 8:从语法到思想的革命
  • 温州网站建设公司有哪些开发客户的70个渠道
  • 报错处理(2)终止多线程父进程后子进程还存在