目录
[1.1 本地 vs 远程](#1.1 本地 vs 远程)
[1.2 分布式的核心思想](#1.2 分布式的核心思想)
[1.3 为什么需要"中央服务器"?](#1.3 为什么需要"中央服务器"?)
[1.4 远程仓库](#1.4 远程仓库)
[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.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.1 推送单个标签](#10.1 推送单个标签)
[10.2 推送所有本地标签](#10.2 推送所有本地标签)
[10.3 删除远程标签](#10.3 删除远程标签)
引言:
这是《Git 完全指南》系列的第三篇。
在前两篇中,我们掌握了 Git 的本地操作和分支管理。但 Git 的真正威力在于分布式协作------你的代码不再局限于本地,而是可以无缝连接到云端,与团队成员共享、同步、迭代。
分布式版本控制改变了传统开发的协作模式:每个人的电脑都是完整的版本库,中央服务器只是"交换中心"而非"唯一权威"。这种设计既保证了离线开发的自由,又实现了多人协作的高效。
本系列规划:
| 篇章 | 内容 | 状态 |
|---|---|---|
| (一)本地仓库基础操作 | 安装配置、核心概念、文件操作、版本回退 | 已发布 |
| (二)分支管理 | 创建切换、合并冲突、分支策略、Bug 分支 | 已发布 |
| (三)远程仓库与标签管理 | 远程仓库、克隆推送、忽略文件、标签版本 | 本文 |
| (四)多人协作与冲突解决 | 多人工作流、代码审查、分支保护 | 待发布 |
| (五)企业级开发模型 | Git Flow、GitHub Flow、CI/CD 集成 | 待发布 |
本文将带你完成从"单机开发"到"云端协作"的关键跨越:注册 Gitee 账号、创建远程仓库、配置 SSH 密钥、掌握 git push 与 git 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
- 登录 Gitee → 点击头像 → 设置

- 左侧菜单选择 SSH 公钥
- 粘贴公钥内容,点击确定

第三步:验证克隆
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.c 和 2.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 让代码的流动突破了物理边界。愿你在协作的海洋中,既能独立航行,也能与伙伴并肩破浪。
