Gitee 基本使用记录 ...... 矜辰所致前言
当下 Git 已经成为了版本控制的标准工具,GitHub、GitCode 和 Gitee作为主流的 Git 托管平台,已经是开发者日常工作中不可或缺的一部分。掌握 Git 操作以及这些平台的使用方法,能极大地提高开发效率和代码管理能力。
本文面向初学者,专门用来记录一下 Gitee 的基本使用,记录一些常用的操作。
我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!
目录
- 前言
- 一、 Git 安装与基本配置
- 1.1 安装
- 1.2 基本配置
- 二、告初学者(仓库 = 独立项目)
- 三、 和 Gitee 关联
- 2.1 新建仓库
- 2.2 HTTPS 还是 SSH
- 2.3 关联仓库
- 2.3 本地已有项目,推到 Gitee
- 2.4 从 Gitee 开始,克隆到本地
- 2.5 修改远程仓库地址
- 四、后续日常三连
- 五、查看历史与版本回退
- 六、分支
- 结语
一、 Git 安装与基本配置
1.1 安装
首先我们需要先在本地安装 Git。
Windows 安装:访问Git官网(https://git-scm.com/)下载最新版本的Git安装程序
按照安装流程,我全部是默认选项没有修改,等待安装完成。
安装完成后,打开终端,输入git --version检查是否安装成功 。
Linux安装:
- Ubuntu/Debian:
sudoapt-getinstallgit- CentOS/RHEL:
sudoyuminstallgit1.2 基本配置
第一次安装 Git 必须做的只有两件事:设置用户名和邮箱。
Git 的每一次提交都会记录 “谁在什么时候改了什么” ,用户名和邮箱是就类似于自己设置一个签名,告诉 Git 自己是谁,这是本地的信息 ,名字和邮箱理论上可以任意设置。
# 设置用户名(提交记录里的作者名) git config--global user.name"Your Name"# 设置邮箱 git config--global user.email"your.email@example.com"当然,除了必须的配置,还有一些其他建议的配置(要清除这些都是本地的配置,还没有到关联 Git 仓库联网哪一步):
# 默认编辑器用 VS Code(写提交信息时会用到)gitconfig--globalcore.editor"code --wait"# 换行符处理,Windows 用户强烈建议设置!gitconfig--globalcore.autocrlftrue# 查看所有配置gitconfig--list二、告初学者(仓库 = 独立项目)
这一章是观念,比命令重要。命令忘了可以查,观念要是错了,后面管理起来都是麻烦,尤其对嵌入式工程师来说 。
Git 可以理解为一套分布式版本管理系统:远程仓库(Gitee/GitHub)和本地仓库是两份独立但互相关联的副本,两者可以互相同步代码变更。
嵌入式项目天然混杂很多东西:软件源码、PCB、原理图、BOM、 datasheet 等,很多刚接触 Git 的嵌入式工程师,会习惯性沿用 Windows 文件管理思维:建立一个文件夹,再把这些东西放在一起,然后希望用 Git 全部管理。
这种想法就是有问题的,Git 不是网盘!Git 不是网盘!
Git 的最佳实践原则:一个独立项目,对应一个 Git 仓库。
Git 仓库的边界要按独立项目来划分,而不是按电脑文件夹的目录结构划分。哪怕你的项目比较小,只要你想管理,也是需要独立的仓库 ,因为软件版本管理都是以一个仓库为单位,一个仓库对应一个项目是最合理的,否则后期管理会相当复杂。
初学者觉得分开管理要维护多个仓库、操作繁琐,这是学习阶段的正常感受。但如果前期图省事把一堆独立工程全堆进同一个仓库,等到项目迭代、发布版本、多人协作时,版本混乱的代价会远远大于现在学习 Git 的成本。
三、 和 Gitee 关联
本章节讲解如何将本地工程与 Gitee 仓库关联 。
2.1 新建仓库
在 Gitee 选择新建仓库:
新建仓库界面如下:
- 建议仓库名称用英文;
- 使用 Readme 文件初始化仓库,这样 Gitee 端自动完成第一次提交,本地推送时不容易报错。
Gitgee 新建仓库,我们可以得到 仓库的地址,比如上面地址就是https://gitee.com/qzh_projects/tools.git。后期的项目管理,本地就是靠这个仓库地址和 Gitgee 端进行绑定的。
这个地址很多地方都能看到,以前的仓库点进去在下载的地方也能看见:
2.2 HTTPS 还是 SSH
关于仓库地址,有 HTTPS 和 SSH:
- HTTPS:最简单,不用密钥文件;用账号密码 / 个人访问令牌
- SSH:需要生成 SSH 密钥,免反复输密码,长期开发推荐
HTTPS:
本文演示使用此方式, SSH 方式后面使用到的时候再来更新
用 https 拉 / 推仓库时,Git 会验证你的 Gitee 身份 ,需要在 Gitee 端生成私人令牌,令牌会在第一次 push/pull 的时候,弹窗 / 命令行提示输入(会在下文的关联章节演示步骤)。
生成私人令牌步骤:
网页登录 Gitee → 个人主页 → 个人设置 → 安全设置 →私人令牌
复制生成的令牌(只显示一次,保存好!丢了只能重新生成):
HTTPS 优缺点
- 优点:简单,不用生成密钥;网络环境限制少
- 缺点:仓库地址是 https 开头;换电脑要重新生成令牌
SSH:
本文暂时没有演示,只做简单介绍
长期开发推荐,需要 SSH 密钥,密钥只需要配置一次,后续 push/pull 永久免密,嵌入式常用。
流程:
- 在 Git Bash 生成 SSH 密钥(本地电脑执行);
- 复制公钥内容;
- 粘贴公钥到 Gitee 网页;
Gitee 网页 → 设置 → 安全设置 → SSH 公钥 → 添加公钥(标题随便写),内容粘贴上面复制的 pub 内容,保存。 - 测试连通性(GitBash 执行)
ssh -T git@gitee.com
输入 yes 确认,出现欢迎文字,代表成功! - SSH 仓库地址格式
克隆仓库要用 SSH 地址(不要 https)
git clone git@gitee.com:你的名字/仓库名.git
# 1. 本地生成密钥对(一路回车)ssh-keygen-ted25519-C"your.email@example.com"# 2. 查看公钥内容,全部复制cat~/.ssh/id_ed25519.pub# 3. 粘贴到 Gitee → 设置 → 安全设置 → SSH 公钥# 4. 测试连通(看到 Welcome to Gitee 即成功)ssh-Tgit@gitee.comSSH 优缺点
- 优点:一次配置,永久免密,不用反复粘贴令牌;多仓库管理舒服
- 缺点:如果网络严格限制 22 端口,SSH 会连不上(国内一般没问题)
| HTTPS | SSH | |
|---|---|---|
| 地址长相 | https://gitee.com/用户名/仓库.git | git@gitee.com:用户名/仓库.git |
| 每次 push | 要输账号 + 令牌 记住后免输 | 什么都不用输 |
| 配置成本 | 零配置 | 配一次,永久生效 |
| 适用场景 | 偶尔用、公司网络封了 SSH 端口 | 一般日常开发 |
| 令牌/密钥 | Gitee网页生成的【个人访问令牌】, 属于 Gitee 这边的身份凭证 | 在本地电脑Git Bash 里生成一对文件: 私钥(本地保存,相当于唯一钥匙 )+ 公钥(相当于一把锁,上传到 Gitee ); |
2.3 关联仓库
在新建了仓库之后, Gitee 都会弹出界面告诉你基本的使用方式,如下图 :
这个图要解释一下:
Git 全局设置:
就是上文提到的本地基本配置。创建 git 仓库
这里并不是指在本地创建网页端的仓库,而是把本地 tools 文件夹这个工程和网页端创建好的仓库的地址绑定起来。
①https://gitee.com/qzh_projects/tools.git是远程仓库的地址,
②mkdir创建的是本地文件夹(项目),图中示例是创建 tools 文件夹,我们完全可以使用其他文件夹名称,然后把这个新建的这个本地文件夹绑定到远程名为 tools (地址为https://gitee.com/qzh_projects/tools.git)的仓库。
③命令git remote add origin xxx= 绑定地址,不是创建远程仓库。
我们按照上面方式,在执行第一次 push 的时候需要输入上面生成的密钥(HTTPS 方式):
gitpush-uorigin master# 其中账号就是浏览器地址栏 https://gitee.com/ 后面那串#比如 https://gitee.com/qzh_projects 账号就是 qzh_projectsUsername: qzh_projects Password: gitee_xxxxxxxxxxxx# 粘贴刚才的令牌查看当前关联的仓库:
2.3 本地已有项目,推到 Gitee
最常见的场景之一:
代码已经在电脑里写了很久,现在想交给 Git 管理。
在项目根目录依次执行:
# 1. 初始化本地仓库(只做一次)gitinit# 2. 把文件加入暂存区(. 表示当前目录所有文件)gitadd.# 3. 提交到本地仓库,-m 后面写清楚这次提交了什么gitcommit-m"写这个版本改了什么东西"# 4. 关联 Gitee 远程仓库(地址换成自己的)gitremoteaddorigin https://gitee.com/qzh_projects/tools.git# 5. 推送,-u 只需第一次加,以后直接 git pushgitpush-uorigin master2.4 从 Gitee 开始,克隆到本地
换了电脑、或者下载别人的项目,克隆:
gitclone https://gitee.com/qzh_projects/tools.git执行后当前目录下会多出一个与仓库同名的文件夹,包含全部代码和完整的提交历史,直接用。
2.5 修改远程仓库地址
仓库迁移、改名、或者 HTTPS/SSH 换着用,不用删了重加,直接覆盖:
gitremote set-url origin https://gitee.com/qzh_projects/tools.gitgitremote set-url origin git@gitee.com:qzh_projects/tools.git# 验证是否切换成功gitremote-v四、后续日常三连
日常三连:add → commit → push
关联关系建立好以后,日常改代码只重复三条命令:
gitadd.# 把改动放入暂存区gitcommit-m"说明一下修改了什么"# 提交到本地仓库gitpush# 推送到 Gitee理解这三条命令,先记住 Git 的三个"区":
git add就像把东西放进打包箱,.表示把当前目录及其所有子目录下的改动,也可以选择性放(git add main.c只放这一个文件);git commit是把打包箱封存进档案库,并附一张纸条(-m 里的说明);git push是把本地档案库同步到 Gitee。
五、查看历史与版本回退
# 完整历史(含作者、日期、详细说明)gitlog# 查看提交历史,一行一条,前面是版本号gitlog--oneline# a1b2c3d 修复LED延时bug# e4f5g6h 新增按键检测# i7j8k9l 初始导入# 查看某个旧版本的文件gitshow a1b2c3d:main.c# 对比某个旧版本和现在的区别gitdiffe4f5g6h main.c# 发现旧版本更好,把旧版本的这一个文件恢复出来gitcheckout e4f5g6h -- main.c# 提交这次恢复并推送gitcommit-am"回退main.c到昨天版本"gitpush# 回到某个旧版本(临时查看,不修改)gitcheckout a1b2c3d# 回到最新版本gitcheckout main六、分支
我们有时候需要给代码设置一些子版本或者想改代码,但怕改砸了,就可以使用分支功能。
主线(默认叫master或main)永远保持"能跑的状态",新功能、新实验在新分支上实现,成功了合回来,搞砸了直接扔掉。
# 1. 基于当前状态开一条新分支gitcheckout-bfeature-pwm# 2. 在新分支上随便改、随便提交,主线不受影响gitadd.gitcommit-m"实验:PWM 调光"# 3. 实验成功,切回主线合并gitcheckout mastergitmerge feature-pwmgitpush# 4. 实验失败,分支不要了,删掉就是,代码原样回到开分支前gitbranch-Dfeature-pwm如果两个分支改了同一个文件的同一处地方,合并时会冲突,Git 会把冲突标记写在文件里让你手动选:
<<<<<<<HEAD 你的代码=======别人的代码>>>>>>>feature-pwm保留想要的、删掉标记行,再git add+git commit即可。冲突不可怕,它就是在问你"这两处改动听谁的"。
结语
本文从安装配置、仓库规划、Gitee 关联,到日常提交、版本回退,把嵌入式开发者用得到的 Gitee / Git 操作过了一遍。命令不在多,练熟三连和回退,日常开发就够用了,后期如果遇到新的功能需求,再来记录。
好了,本文就到这里。谢谢大家!