Git 完全指南(三):远程仓库与标签管理

目录

引言:

1~>远程操作------理解分布式版本控制系统

[1.1 本地 vs 远程](#1.1 本地 vs 远程)

[1.2 分布式的核心思想](#1.2 分布式的核心思想)

[1.3 为什么需要"中央服务器"?](#1.3 为什么需要"中央服务器"?)

[1.4 远程仓库](#1.4 远程仓库)

2~>远程操作------创建远程仓库

[2.1 新建远程项目仓库](#2.1 新建远程项目仓库)

[2.2 填写基本信息](#2.2 填写基本信息)

[2.3 创建成功](#2.3 创建成功)

[2.4 仓库模板说明](#2.4 仓库模板说明)

[3~>远程操作------克隆远程仓库_HTTPS(git clone)](#3~>远程操作——克隆远程仓库_HTTPS(git clone))

[3.1 获取仓库链接](#3.1 获取仓库链接)

[3.2 协议说明](#3.2 协议说明)

[3.3 执行克隆](#3.3 执行克隆)

[3.4 克隆后的目录结构](#3.4 克隆后的目录结构)

[3.5 查看远程仓库信息(git remote -v)](#3.5 查看远程仓库信息(git remote -v))

[4~>远程操作------克隆远程仓库_SSH(git clone)](#4~>远程操作——克隆远程仓库_SSH(git clone))

[4.1 SSH 克隆尝试](#4.1 SSH 克隆尝试)

[4.2 配置 SSH 密钥](#4.2 配置 SSH 密钥)

[第一步:生成 SSH Key](#第一步:生成 SSH Key)

[第二步:添加公钥到 Gitee](#第二步:添加公钥到 Gitee)

第三步:验证克隆

[5~>远程操作------向远程仓库推送(git push)](#5~>远程操作——向远程仓库推送(git push))

[5.1 本地开发并提交](#5.1 本地开发并提交)

[5.2 查看推送提示](#5.2 查看推送提示)

[5.3 推送命令格式](#5.3 推送命令格式)

[5.4 执行推送](#5.4 执行推送)

[5.5 验证推送结果](#5.5 验证推送结果)

[6~>远程操作------拉取远程仓库(git pull)](#6~>远程操作——拉取远程仓库(git pull))

[6.1 模拟远程更新](#6.1 模拟远程更新)

[6.2 推送命令格式](#6.2 推送命令格式)

[6.3 本地拉取更新](#6.3 本地拉取更新)

[6.4 git pull 的本质](#6.4 git pull 的本质)

7~>远程操作------忽略特殊文件(.gitignore)

[7.1 为什么需要忽略?](#7.1 为什么需要忽略?)

[7.2 创建 .gitignore 文件](#7.2 创建 .gitignore 文件)

[7.3 编写忽略规则](#7.3 编写忽略规则)

[7.4 验证忽略效果](#7.4 验证忽略效果)

[7.5 强制添加被忽略的文件](#7.5 强制添加被忽略的文件)

8~>远程操作------配置命令别名

[8.1 别名配置](#8.1 别名配置)

[8.2 验证别名](#8.2 验证别名)

[8.3 常用别名推荐](#8.3 常用别名推荐)

[8.4 学习建议](#8.4 学习建议)

[9~>标签管理------操作标签(git tag)](#9~>标签管理——操作标签(git tag))

[9.1 理解标签](#9.1 理解标签)

[9.2 创建标签](#9.2 创建标签)

[9.3 标签的底层存储](#9.3 标签的底层存储)

[9.4 给历史提交打标签](#9.4 给历史提交打标签)

[9.5 查看标签信息](#9.5 查看标签信息)

[9.6 创建带说明的标签](#9.6 创建带说明的标签)

[9.7 删除本地标签](#9.7 删除本地标签)

10~>标签管理------推送标签到远程

[10.1 推送单个标签](#10.1 推送单个标签)

[10.2 推送所有本地标签](#10.2 推送所有本地标签)

[10.3 删除远程标签](#10.3 删除远程标签)

本节命令速查表

结语:


引言:

这是《Git 完全指南》系列的第三篇。

在前两篇中,我们掌握了 Git 的本地操作和分支管理。但 Git 的真正威力在于分布式协作------你的代码不再局限于本地,而是可以无缝连接到云端,与团队成员共享、同步、迭代。

分布式版本控制改变了传统开发的协作模式:每个人的电脑都是完整的版本库,中央服务器只是"交换中心"而非"唯一权威"。这种设计既保证了离线开发的自由,又实现了多人协作的高效。

本系列规划:

篇章 内容 状态
(一)本地仓库基础操作 安装配置、核心概念、文件操作、版本回退 已发布
(二)分支管理 创建切换、合并冲突、分支策略、Bug 分支 已发布
(三)远程仓库与标签管理 远程仓库、克隆推送、忽略文件、标签版本 本文
(四)多人协作与冲突解决 多人工作流、代码审查、分支保护 待发布
(五)企业级开发模型 Git Flow、GitHub Flow、CI/CD 集成 待发布

本文将带你完成从"单机开发"到"云端协作"的关键跨越:注册 Gitee 账号、创建远程仓库、配置 SSH 密钥、掌握 git pushgit pull 的双向同步,以及用标签(Tag)为版本发布打上永久标记。这些技能是团队协作的基石,也是你迈向专业开发者的重要一步。

🎯 适合人群:已掌握 Git 本地操作和分支管理,希望学习远程协作的开发者

💻 前置知识:建议先阅读《Git 完全指南(一)》和《Git 完全指南(二)》


1~>远程操作------理解分布式版本控制系统

1.1 本地 vs 远程

回顾之前所学,所有操作------工作区、暂存区、版本库------都发生在本地 ,即你自己的电脑。但 Git 的完整形态是分布式版本控制系统(Distributed Version Control System, DVCS),这意味着什么?


1.2 分布式的核心思想

每台电脑都是完整的版本库

复制代码
┌─────────┐     ┌─────────┐     ┌─────────┐
│  你的电脑  │ ←→ │  同事A   │ ←→ │  同事B   │
│ 完整仓库  │     │ 完整仓库 │     │ 完整仓库 │
└─────────┘     └─────────┘     └─────────┘
       ↑              ↑              ↑
       └──────────────┴──────────────┘
              互相推送/拉取修改

工作方式:你在本地修改文件A,同事也在本地修改文件A。完成后,你们互相推送(push)各自的修改,即可看到对方的变更。

优势

  • 离线工作:无需联网,本地即可完成版本控制
  • 安全性高:每个人的电脑都有完整备份,某台机器损坏不影响整体
  • 灵活协作:任意两人之间可直接交换修改

1.3 为什么需要"中央服务器"?

理论上,分布式系统不需要中心节点。但实际场景中:

问题 说明
网络隔离 同事可能不在同一局域网
机器状态 同事的电脑可能关机或故障
交换不便 两两之间推送效率低下

因此,通常引入一台24小时运行的服务器作为"交换中心":

复制代码
┌─────────┐     ┌─────────┐     ┌─────────┐
│  你的电脑  │ ←→ │ 中央服务器 │ ←→ │  同事电脑  │
│ 完整仓库  │     │ 裸仓库   │     │ 完整仓库 │
└─────────┘     └─────────┘     └─────────┘
       ↑              ↑              ↑
       └──────────────┴──────────────┘
            推送(push) / 拉取(pull)

💡 关键认知 :中央服务器只是方便交换修改,没有它大家照样能工作。这与传统的集中式版本控制系统(如 SVN)有本质区别------SVN 的服务器是核心,客户端只有工作副本。


1.4 远程仓库

Git 仓库可以分布到任意机器上。**克隆(clone)**是获取远程仓库的标准方式:

复制代码
原始仓库 ──→ git clone ──→ 你的电脑(完整副本)

常见问题:我只有一台电脑,怎么练习远程操作?

回答 :理论上可以在一台电脑上克隆多个仓库(不同目录即可),但这毫无意义------硬盘损坏会导致所有副本同时丢失。

实际方案:使用专业的代码托管平台:

平台 特点 适用场景
GitHub GitHub · Change is constant. GitHub keeps you ahead. · GitHub 全球最大,生态丰富 开源项目、国际化团队
Gitee(码云) 工作台 - Gitee.com 国内访问快,中文友好 国内开发、学习练习
GitLab 可私有化部署 企业内部、安全要求高

本文统一采用 Gitee(码云) 进行演示,访问速度快,适合国内用户学习。


2~>远程操作------创建远程仓库

2.1 新建远程项目仓库

登录 Gitee 后,点击右上角 "+" → 新建仓库

2.2 填写基本信息

2.3 创建成功

从创建好的远程仓库中我们便能看到,之前在本地学习过的分⽀,也存在于远程仓库中并被管理起来了。刚创建的仓库有且只有⼀个默认的master分⽀。

2.4 仓库模板说明

创建时 Gitee 提供了三个模板选项:

Readme文件

这个就是告诉别人这个项目是干嘛的

lssue模板文件

这是让有问题的人和仓库里的人员进行交流的一个地方

Pull Request模板文件

这就是个合并申请单,我们一般在开发的时候不会直接dev合并到merge,而是dev给PR,这个申请单里面要说明为什么要合并,或者有什么功能,这个申请单就是给管理员看的,管理员一旦同意了,我们才可以将自己的代码merge到这个master上去(这也不是我们自己操作,而是在平台里操作)

模板 作用 使用场景
README 文件 项目说明文档 必勾选,介绍项目用途、安装方法、使用说明
Issue 模板 问题反馈模板 团队协作时规范 Bug 报告和功能建议
Pull Request 模板 合并申请模板 团队开发时规范代码审查流程

💡 Pull Request 详解 :开发时不直接 merge,而是先提交 PR(合并申请),说明修改内容和原因。管理员审查通过后,在平台点击合并。这是企业开发的标准流程,避免未经审核的代码进入主分支。


3~>远程操作------克隆远程仓库_HTTPS(git clone)

3.1 获取仓库链接

进入仓库主页,点击 "克隆/下载" 按钮,复制 HTTPS 链接:


3.2 协议说明

Git 支持两种主要传输协议:

协议 特点 适用场景
HTTPS 无需配置,直接克隆 首次使用、快速上手
SSH 需配置密钥,免密推送 长期开发、频繁推送

🔒 SSH 优势:配置公钥后,推送无需反复输入密码,更安全便捷。


3.3 执行克隆

注意:不能在已有本地仓库的目录下执行克隆!

需要注意的是,我们克隆远程仓库的时候,不能在本地仓库的目录下执行克隆

bash 复制代码
# 查看当前目录结构
[root@VM-0-2-centos ~]# tree
.
|-- 2026_8_27
|   |-- hello.txt
|   |-- test
|   |-- test.c
|   `-- test.txt
`-- gitcode
    |-- test1
    `-- test2

2 directories, 6 files

# 克隆远程仓库(会在当前目录新建文件夹)
[root@VM-0-2-centos ~]# git clone https://gitee.com/ling-qian_1_0/git.git
Cloning into 'git'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (7/7), done.

# 查看克隆结果
[root@VM-0-2-centos ~]# ls
2026_8_27  git  gitcode

3.4 克隆后的目录结构

复制代码
[root@VM-0-2-centos ~]# ls -a ./git
.  ..  .git  .gitee  README.en.md  README.md
文件/目录 说明
.git 本地版本库(与之前学习的本地仓库结构完全一致)
.gitee Gitee 平台配置文件
README.md / README.en.md 中英文项目说明
origin 远程仓库的默认名称

此时克隆下来的状态就是如下图(克隆下来后不仅有一个远程仓库,还有一个 本地仓库,本地仓库里的内容就跟我们先前所讲的本地仓库内容 一模一样 )


3.5 查看远程仓库信息(git remote -v)

复制代码
# 进入克隆的仓库
[root@VM-0-2-centos ~]# cd git

# 查看远程仓库名称
[root@VM-0-2-centos git]# git remote
origin

# 查看详细信息
[root@VM-0-2-centos git]# git remote -v
origin	https://gitee.com/ling-qian_1_0/git.git (fetch)  # 拉取地址
origin	https://gitee.com/ling-qian_1_0/git.git (push)   # 推送地址

📝 origin:Git 自动为远程仓库分配的默认名称,可以自定义。


4~>远程操作------克隆远程仓库_SSH(git clone)

4.1 SSH 克隆尝试

bash 复制代码
[root@VM-0-2-centos ~]# git clone git@gitee.com:ling-qian_1_0/git.git
Cloning into 'git'...
The authenticity of host 'gitee.com (180.76.199.13)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
ECDSA key fingerprint is MD5:27:e5:d3:f7:2a:9e:eb:6c:93:cd:1f:c1:47:a3:54:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,180.76.199.13' (ECDSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

错误原因:未将本地公钥添加到 Gitee 账户,服务器拒绝连接。


4.2 配置 SSH 密钥

第一步:生成 SSH Key

bash 复制代码
# 检查是否已有密钥
[root@VM-0-2-centos ~]# ls .ssh
authorized_keys  known_hosts

# 生成新密钥(使用你的邮箱)
[root@VM-0-2-centos ~]# ssh-keygen -t rsa -C "3139198270@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):     # 回车,使用默认路径
Enter passphrase (empty for no passphrase):                   # 回车,不设密码
Enter same passphrase again:                                  # 回车,确认

Your identification has been saved in /root/.ssh/id_rsa.      # 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub.      # 公钥

⚠️ 安全提示id_rsa 是私钥,绝不能泄露id_rsa.pub 是公钥,可以放心提供给第三方平台。

第二步:添加公钥到 Gitee

复制代码
# 查看公钥内容
[root@VM-0-2-centos ~]# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... 3139198270@qq.com
  1. 登录 Gitee → 点击头像 → 设置
  2. 左侧菜单选择 SSH 公钥
  3. 粘贴公钥内容,点击确定

第三步:验证克隆

bash 复制代码
[root@VM-0-2-centos ~]# git clone git@gitee.com:ling-qian_1_0/git.git
Cloning into 'git'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (7/7), done.

[root@VM-0-2-centos ~]# ls
2026_8_27  git  gitcode

成功!

💡 多人协作:Gitee/GitHub 支持添加多个公钥,团队成员各自添加自己的 Key,即可在同一仓库协作开发。


5~>远程操作------向远程仓库推送(git push)

5.1 本地开发并提交

bash 复制代码
[root@VM-0-2-centos git]# echo "hello git" > test1
[root@VM-0-2-centos git]# git add .
[root@VM-0-2-centos git]# git commit -m "create test1"
[master b1c6889] create test1
 1 file changed, 1 insertion(+)
 create mode 100644 test1

5.2 查看推送提示

bash 复制代码
[root@VM-0-2-centos git]# git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

状态解读 :本地 master 分支领先远程 origin/master 1 个提交,Git 建议使用 git push 发布本地提交。


5.3 推送命令格式

bash 复制代码
# 完整格式
git push <远程主机名> <本地分支名>:<远程分支名>

# 简写格式(本地与远程分支名相同)
git push <远程主机名> <本地分支名>

5.4 执行推送

bash 复制代码
[root@VM-0-2-centos git]# git push origin master
Warning: Permanently added the ECDSA host key for IP address '180.76.198.225' to the list of known hosts.
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 271 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.23]
To git@gitee.com:ling-qian_1_0/git.git
   08e4c19..b1c6889  master -> master

输出解读

信息 含义
Counting objects 计算需要传输的对象
Compressing objects 压缩数据
Writing objects 写入远程仓库
master -> master 本地 master 推送到远程 master

5.5 验证推送结果

登录 Gitee 仓库页面,可以看到 test1 文件已成功上传。

🔑 SSH 优势:配置 SSH 后,推送无需输入密码。若使用 HTTPS,每次推送都需输入账号密码。


6~>远程操作------拉取远程仓库(git pull)

6.1 模拟远程更新

在 Gitee 网页上直接编辑 test1 文件,添加内容:

保存提交,模拟同事推送了更新。


6.2 推送命令格式

bash 复制代码
# 完整格式
git push <远程主机名> <本地分支名>:<远程分支名>

# 简写格式(本地与远程分支名相同)
git push <远程主机名> <本地分支名>

6.3 本地拉取更新

bash 复制代码
# 查看当前文件内容
[root@VM-0-2-centos git]# cat test1
hello git

# 执行拉取
[root@VM-0-2-centos git]# git pull origin master
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), done.
From gitee.com:ling-qian_1_0/git
 * branch            master     -> FETCH_HEAD
Updating b1c6889..b63007b
Fast-forward
 test1 | 1 +
 1 file changed, 1 insertion(+)

# 验证更新
[root@VM-0-2-centos git]# cat test1
hello git
第一次修改

6.4 git pull 的本质

git pull = git fetch(拉取远程数据)+ git merge(合并到本地分支)

复制代码
远程仓库 ──→ git fetch ──→ 远程跟踪分支 ──→ git merge ──→ 本地分支
                ↑___________________________________________↓
                           git pull(一步完成)

⚠️ 注意 :本文仅在演示场景下修改远程仓库内容。实际开发中,不要在远程仓库直接修改代码,应通过本地开发 → 推送的标准流程。


7~>远程操作------忽略特殊文件(.gitignore

7.1 为什么需要忽略?

开发中有些文件不应提交到版本库:

文件类型 示例 原因
配置文件 config.ini 包含数据库密码等敏感信息
编译产物 *.o, *.exe 可由源码重新生成
依赖目录 node_modules/ 体积大,可通过包管理器安装
临时文件 *.log, .tmp 无版本控制价值

7.2 创建 .gitignore 文件

方式一:创建仓库时勾选(推荐)

方式二:手动创建

bash 复制代码
[root@VM-0-2-centos git]# touch .gitignore
[root@VM-0-2-centos git]# nano .gitignore

7.3 编写忽略规则

bash 复制代码
[root@VM-0-2-centos git]# cat .gitignore
# 忽略所有 .c 和 .txt 文件
*.c
*.txt

# 但保留 d.c 文件(例外规则)
!d.c

规则语法

模式 含义
*.c 忽略所有 .c 结尾的文件
*.txt 忽略所有 .txt 结尾的文件
!d.c ! 表示例外,不忽略 d.c
# 注释行

7.4 验证忽略效果

bash 复制代码
[root@VM-0-2-centos git]# touch 1.c 2.txt d.c
[root@VM-0-2-centos git]# ls
1.c  2.txt  d.c  README.en.md  README.md  test1

[root@VM-0-2-centos git]# git add .
[root@VM-0-2-centos git]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   .gitignore
#	new file:   d.c
#

结果1.c2.txt 被忽略,只有 d.c.gitignore 被追踪。


7.5 强制添加被忽略的文件

bash 复制代码
# 方式一:强制添加
[root@VM-0-2-centos git]# git add -f 1.c

# 方式二:检查忽略规则
[root@VM-0-2-centos git]# git check-ignore -v 2.txt
.gitignore:3:*.txt	2.txt

📝 建议.gitignore 文件本身应提交到版本库,方便团队成员共享相同的忽略规则。


8~>远程操作------配置命令别名

8.1 别名配置

Git 支持为常用命令设置简短别名:

bash 复制代码
# 将 git status 简化为 git st
[root@VM-0-2-centos git]# git config --global alias.st status

8.2 验证别名

bash 复制代码
[root@VM-0-2-centos git]# git st
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean

8.3 常用别名推荐

别名 原始命令 说明
st status 查看状态
co checkout 切换分支
br branch 分支操作
ci commit 提交
lg log --graph --oneline 图形化日志

多词命令别名(需用引号包裹):

bash 复制代码
git config --global alias.lg "log --graph --pretty=oneline --abbrev-commit"

8.4 学习建议

🎯 不推荐新手阶段大量使用别名。先熟练掌握完整命令,等工作熟练后再根据个人习惯配置,避免过度依赖别名导致遗忘原命令。


9~>标签管理------操作标签(git tag)

9.1 理解标签

标签(Tag) 是对某次 commit永久标识,相当于给提交起了一个有意义的别名。

对比 Commit ID Tag
形式 f477b9bf...(40位哈希) v1.0(简洁语义化)
记忆难度 极难 极易
用途 内部追踪 版本发布、里程碑标记

典型场景 :项目发布 v1.0 版本时,给最后一次提交打上标签,方便后续快速定位。


9.2 创建标签

bash 复制代码
# 确认当前分支
[root@VM-0-2-centos git]# git branch
* master

# 给最新提交打标签
[root@VM-0-2-centos git]# git tag v1.0

# 查看所有标签
[root@VM-0-2-centos git]# git tag
v1.0

9.3 标签的底层存储

bash 复制代码
[root@VM-0-2-centos git]# tree .git/refs
.git/refs/
|-- heads
|   `-- master
|-- remotes
|   `-- origin
|       |-- HEAD
|       `-- master
`-- tags
    `-- v1.0          # ← 标签文件

[root@VM-0-2-centos git]# cat .git/refs/tags/v1.0
f477b9bf7924b6e12fa846ff1dc680ecf59295a2

本质 :标签文件存储的是指向特定 commit id 的指针。


9.4 给历史提交打标签

bash 复制代码
# 查看提交历史
[root@VM-0-2-centos git]# git log --pretty=oneline
f477b9bf7924b6e12fa846ff1dc680ecf59295a2 强制 add 1.c
8e0c1af3495511c11271b0320a809519e33f9e61 .gitignore test
b63007bdcc46a349cb064a8ff1a8752f1553f80f update test1.
...

# 给指定 commit 打标签
[root@VM-0-2-centos git]# git tag v0.9 8e0c1af3495511c11271b0320a809519e33f9e61

[root@VM-0-2-centos git]# git tag
v0.9
v1.0

📝 标签按字母顺序排列,而非时间顺序。


9.5 查看标签信息

bash 复制代码
[root@VM-0-2-centos git]# git show v1.0
commit f477b9bf7924b6e12fa846ff1dc680ecf59295a2
Author: ling-qian_1_0 <3139198270@qq.com>
Date:   Thu Sep 3 09:53:39 2026 +0800

    强制 add 1.c

9.6 创建带说明的标签

bash 复制代码
git tag -a <标签名> -m "说明文字" [commit_id]

9.7 删除本地标签

bash 复制代码
[root@VM-0-2-centos git]# git tag -d v0.9
Deleted tag 'v0.9' (was 8e0c1af)

[root@VM-0-2-centos git]# git tag
v1.0

💡 标签默认只存储在本地,删除本地标签是安全的,不会影响远程。


10~>标签管理------推送标签到远程

10.1 推送单个标签

bash 复制代码
[root@VM-0-2-centos git]# git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.23]
To git@gitee.com:ling-qian_1_0/git.git
 * [new tag]         v1.0 -> v1.0

推送成功后,在 Gitee 仓库页面可以看到标签已更新。


10.2 推送所有本地标签

bash 复制代码
git push origin --tags

10.3 删除远程标签

两步操作

bash 复制代码
# 第一步:删除本地标签
[root@VM-0-2-centos git]# git tag -d v1.0
Deleted tag 'v1.0' (was f477b9b)

# 第二步:推送删除到远程
[root@VM-0-2-centos git]# git push origin :refs/tags/v1.0
remote: Powered by GITEE.COM [1.1.23]
To git@gitee.com:ling-qian_1_0/git.git
 - [deleted]         v1.0

📝 远程标签删除语法:git push origin :refs/tags/<标签名>


本节命令速查表

命令 作用
git clone <url> 克隆远程仓库到本地
git remote -v 查看远程仓库信息
git push origin <branch> 推送本地分支到远程
git pull origin <branch> 拉取远程分支并合并
git tag <name> 给最新提交打标签
git tag <name> <commit> 给指定提交打标签
git push origin <tag> 推送标签到远程
git push origin --tags 推送所有标签
git tag -d <name> 删除本地标签
git push origin :refs/tags/<name> 删除远程标签

结语:

至此,我们已经完整掌握了 Git 从本地到远程的核心操作。

从最初的 git clone 克隆仓库,到理解 HTTPS 与 SSH 两种协议的安全差异;从第一次 git push origin master 推送代码,到熟练使用 git pull 同步团队更新;从配置 .gitignore 保护敏感信息,到用 git tag v1.0 标记发布里程碑------你已经具备了独立使用 Git 进行远程协作的能力。

远程协作的核心理念回顾

原则 说明
本地先行 所有操作先在本地完成,确认无误后再推送
频繁同步 及时 pull 团队更新,减少冲突概率
标签发布 用 Tag 标记版本节点,便于追溯和回滚
忽略敏感 密码、密钥等绝不提交,.gitignore 是防线

但真正的团队协作远不止一人一仓库。在后续的系列文章中,我们将继续探索:

篇章 核心内容
(四)多人协作与冲突解决 多人同时开发的工作流、Pull Request 代码审查、分支保护策略
(五)企业级开发模型 Git Flow、GitHub Flow、Trunk-based 等主流开发模式,CI/CD 自动化集成

最后,送给你几个远程协作的实践心得

原则 说明
SSH 优先 配置一次,终身免密,安全又便捷
提交前先拉取 pull 后再 push,避免覆盖他人代码
标签要推送 本地标签别忘了 git push origin --tags
别名适度用 熟悉原命令后再配置别名,避免遗忘根本

💡 练习建议:创建一个 Gitee 仓库,将本地项目推送上去,模拟"同事修改-你拉取更新-你再推送"的完整协作流程,体验真正的分布式开发。

从本地到云端,从个人到团队,Git 让代码的流动突破了物理边界。愿你在协作的海洋中,既能独立航行,也能与伙伴并肩破浪。

相关推荐
for_ever_love__1 小时前
python爬虫: 数据解析
开发语言·爬虫·python·xpath
Tassel_YUE1 小时前
非 ansible 主机批量执行命令方法:psssh 和 pscp(随手记)
linux·网络·ssh·scp·ansible
学习星球1 小时前
AI 一句话生成 3D 游戏世界:腾讯 HY-World 2.0 开源深度解析与本地实战
开发语言·人工智能·游戏·3d·ai·课程设计·ai编程
名字还没想好☜1 小时前
Go 用 -race 抓数据竞争:一个偶发崩溃的排查、原理与修复
开发语言·后端·golang·go
小灰灰搞电子1 小时前
Rust std::vec::Vec<T>动态数组:所有相关 API 全面介绍
开发语言·rust
学习星球1 小时前
CodeWhale 深度剖析:从 DeepSeek-TUI 到 40.9K Star 的 Rust 终端编程 Agent
开发语言·后端·rust
曹牧2 小时前
C#:线程间操作无效,不是从创建控件线程访问
开发语言·c#
承渊政道4 小时前
【Python编程—从入门到实践】(Python条件判断完全入门:从布尔表达式到列表中的if实战)
开发语言·python·pycharm·条件判断·布尔表达式
小灰灰搞电子4 小时前
Rust 相关容器(集合)详解
开发语言·容器·rust