Git 远程仓库教程:从入门到协同工作(ch03)
欢迎来到 Git 系列教程的第三章!远程仓库是 Git 协同工作的核心。通过将本地代码托管到远程服务器,我们可以实现代码备份、多人共享和高效协同开发。
🎯 学习目标概览
理解远程仓库的概念与工作原理。
了解主流的代码托管平台。
掌握远程仓库的核心操作(推送、拉取、克隆、分支、标签)。
一、核心概念与平台介绍
1. 什么是远程仓库?
简单来说,远程仓库就是除了你本地电脑上的 Git 仓库之外的仓库。它通常位于互联网上的服务器中。
主要作用:
存储备份: 防止本地数据丢失。
共享代码: 让团队成员访问和获取最新代码。
协同工作: 允许多人同时对同一个项目进行修改和贡献。
2. 常见的代码托管平台
这些平台本质上是为你搭建好的 Git 服务器。
GitHub全球最大的开源社区和代码托管平台。
Gitee (码云)国内流行的代码托管平台,访问速度更快。
二、远程仓库核心操作(基于 Gitee 实践)
我们将以 Gitee(码云)为例,演示如何将本地仓库的内容推送到远程。
步骤 1:创建本地仓库与远程仓库
在 Gitee 中创建远程仓库:
注册 Gitee 账号。
在 Gitee 上创建一个新的远程仓库(例如命名为
helloworld)。
创建本地仓库:
# (如果未配置,请先配置用户信息)
$ 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 支持两种主要的协议:
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 公钥
查看公钥内容:
$ cat ~/.ssh/id_rsa.pub复制公钥内容。
登录 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 testing4. 分支操作
创建与推送远程分支
# 基于本地 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 testing5. 标签操作 (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 模式匹配(递归应用于整个工作区)。
以
/开头防止递归(只忽略当前目录下的)。以
/结尾指定目录。在模式前加
!取反,表示不忽略(即使该文件已被前面的模式忽略)。
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 许可协议,转载请注明出处!