Git 远程仓库教程:从入门到协同工作(ch03)

十一月 20, 2025 / 樱羽雨奈 / 20阅读 / 0评论

欢迎来到 Git 系列教程的第三章!远程仓库是 Git 协同工作的核心。通过将本地代码托管到远程服务器,我们可以实现代码备份、多人共享和高效协同开发。

🎯 学习目标概览

  1. 理解远程仓库的概念与工作原理

  2. 了解主流的代码托管平台

  3. 掌握远程仓库的核心操作(推送、拉取、克隆、分支、标签)。


一、核心概念与平台介绍

1. 什么是远程仓库?

简单来说,远程仓库就是除了你本地电脑上的 Git 仓库之外的仓库。它通常位于互联网上的服务器中。

  • 主要作用:

    • 存储备份: 防止本地数据丢失。

    • 共享代码: 让团队成员访问和获取最新代码。

    • 协同工作: 允许多人同时对同一个项目进行修改和贡献。

2. 常见的代码托管平台

这些平台本质上是为你搭建好的 Git 服务器。

GitHub全球最大的开源社区和代码托管平台。

Gitee (码云)国内流行的代码托管平台,访问速度更快。

二、远程仓库核心操作(基于 Gitee 实践)

我们将以 Gitee(码云)为例,演示如何将本地仓库的内容推送到远程。

步骤 1:创建本地仓库与远程仓库

  1. 在 Gitee 中创建远程仓库:

    • 注册 Gitee 账号。

    • 在 Gitee 上创建一个新的远程仓库(例如命名为 helloworld)。

  2. 创建本地仓库:

# (如果未配置,请先配置用户信息)
$ git config --global user.name yourname
$ git config --global user.email you@example.com

# 创建并初始化本地目录
$ mkdir helloworld
$ cd helloworld
$ git init

步骤 3:关联远程仓库

将本地仓库与 Gitee 上创建的远程仓库建立连接。

# git remote add <远程主机别名> <远程主机地址>
# 惯例上,远程主机别名通常使用 'origin'
$ git remote add origin https://gitee.com/zing173/helloworld.git

步骤 4:推送代码 (Push)

将本地仓库的内容推送到远程仓库。

# 第一次推送,使用 -u 参数(设置上游/追踪分支)
# 格式:git push -u <远程主机名> <本地分支名>
$ git push -u origin master

三、进阶操作与协同工作

1. 克隆远程仓库 (Clone)

克隆是复制整个远程仓库到本地的命令。

$ git clone <url>

Git 支持两种主要的协议:

协议

示例命令

特点

HTTP(S)

$ git clone https://...

每次操作可能需要输入账号密码(取决于配置)。

SSH

$ git clone git@gitee.com:...

配置后,无需每次输入密码,更方便快捷(推荐)。

2. SSH 协议配置

使用 SSH 协议可以免去频繁输入密码的步骤。

第一步:创建 SSH Key

在命令行(Linux/Git Bash)中输入以下命令:

$ ssh-keygen -t rsa -C "你的邮箱"
# 示例
$ ssh-keygen -t rsa -C "114729040@qq.com"
# 随后一路回车,生成的密钥文件会保存在 ~/.ssh 目录下
# 私钥: id_rsa (自己保留)
# 公钥: id_rsa.pub (上传到 Gitee)

第二步:设置账户 SSH 公钥

  1. 查看公钥内容:$ cat ~/.ssh/id_rsa.pub

  2. 复制公钥内容。

  3. 登录 Gitee,进入 「设置」->「安全设置」->「SSH 公钥」,将公钥内容粘贴并添加。

3. 拉取远程更新 (Pull)

将远程仓库的内容下载到本地仓库。

方式一:git pull (拉取并合并当前分支)

git pull 是两个命令的组合:git fetch(下载数据) + git merge(合并到本地)。

# 简写:拉取当前分支的上游分支并合并
$ git pull 
# 或
$ git pull origin

方式二:拉取并合并指定分支

# 格式:git pull <远程主机名> <远程分支名>:<本地分支名>
# 示例:把远程 origin 的 master 分支拉取过来,与本地的 testing 分支合并
$ git pull origin master:testing

# 如果拉取的远程分支与当前分支合并,则可以省略冒号
# 示例:拉取 origin 的 testing 分支,与本地当前所处的 testing 分支合并
$ git pull origin testing

4. 分支操作

创建与推送远程分支

# 基于本地 master 分支,创建远程 testing 分支
# 格式:git push <远程主机名> 本地分支名称:远程分支名称
$ git push origin master:testing 

# 推送本地新分支并设置上游(推荐用法)
# 切换到本地 testing 分支后,执行:
$ git push --set-upstream origin testing
# 之后在该分支上可以直接使用 git push

删除远程分支

# 语法一:git push <远程主机名> :远程分支名称
$ git push origin :testing

# 语法二:git push <远程主机名> --delete 远程分支名称
$ git push origin --delete testing

5. 标签操作 (Tag)

标签用于标记项目历史中的某个重要时间点(如版本发布)。

创建本地标签

# 附注标签(推荐):带有附注信息
# 格式:git tag -a <标签名称> -m <提交描述>
$ git tag -a v1.5 -m 'helloworld-beta'

# 轻量标签:没有附注信息
# 格式:git tag <标签名称> 

推送标签到远程

标签默认不会随 git push 推送,需要单独操作。

# 推送单个标签
$ git push origin v1.5

# 一次性推送所有本地未推送到远程的标签
$ git push origin --tags

删除标签

# 1. 删除本地标签
$ git tag -d v0.1

# 2. 删除远程标签(二选一)
# 方法一:
$ git push origin :refs/tags/v0.1
# 方法二:
$ git push origin --delete v0.1

四、文件忽略 (.gitignore)

.gitignore 是一个特殊文件,用于定义不纳入 Git 版本控制的文件或目录,即“忽略文件”。

1. .gitignore 格式规范

  • 空行或以 # 开头的行会被忽略。

  • 使用标准的 glob 模式匹配(递归应用于整个工作区)。

  • / 开头防止递归(只忽略当前目录下的)。

  • / 结尾指定目录。

  • 在模式前加 ! 取反,表示不忽略(即使该文件已被前面的模式忽略)。

匹配模式

描述

*

匹配零个或多个任意字符。

[abc]

匹配方括号中的任一字符。

?

只匹配一个任意字符。

**

匹配任意中间目录(例如 a/**/z 可匹配 a/b/c/z)。

2. 忽略规则示例

# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a (取反)
!lib.a

# 只忽略当前目录下的 TODO 文件
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

3. 处理已被跟踪的文件

注意: 如果要忽略的文件已经被暂存或推送到远程仓库,.gitignore 无法直接使其失效。你需要先从 Git 的跟踪中移除它们。

# 移除暂存区中的所有文件(只保留工作区)
$ git rm -r --cached .
# 重新添加所有文件,此时 .gitignore 开始生效
$ git add .
$ git commit -m '更新 .gitignore'

#Git(5)

文章作者:樱羽雨奈

文章链接:https://www.xiyung.cn/archives/git-1

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!