510-GitHub基础

510-GitHub团队开发基础

一、这是什么?(拒绝死记硬背)

在敲命令之前,我要先帮你建立一个空间思维

你可以把Git想象成一个**"超级游戏存档系统",而GitHub就是"云端存档服务器"**。

在这个系统里,有四个重要的区域,你必须得心里有数:
云端 (GitHub) 你的电脑 (本地) git add git commit git push git pull 远程仓库
Remote Repo 暂存区
Staging Area 工作区
Workspace 本地仓库
Local Repo

  • 工作区 (Workspace):就是你VSCode打开的文件夹,你在里面写代码。
  • 暂存区 (Staging Area):这是一个**"购物车"**。你想提交哪些文件,就先把它们扔进购物车。
  • 本地仓库 (Local Repo):这是你的**"私人保险箱"**。一旦提交到这里,就生成了一个"存档点",随时可以回退。
  • 远程仓库 (Remote Repo):这就是GitHub。

二、准备工作(磨刀不误砍柴工)

2.1 安装git

  • 下载 :去 Git官网 下载Windows版本。

    • 注:第一个为独立安装包,安装会自动配置环境变量。如果验证部分没有成功,可能是环境变量没有配置好。
  • 安装:一路"Next"到底就行。

  • 验证 :打开终端(cmd或PowerShell),输入 git --version。如果出现了版本号,恭喜你,装备安装成功!

2.2 搭建云端基地 (认识与注册 GitHub)

它是谁?

不要只把它当成存代码的网盘。对于我们 IoT 工程师来说,GitHub 是:

  1. 代码托管所:怕电脑坏了代码丢了?存这儿最安全。

  2. 程序员的"朋友圈":你会看到全球最牛的大佬(比如 Linux 之父)也在用它。

  3. 开源圣地:你用的 ESP-IDF、Arduino 库、Docker 镜像,源头都在这。

  4. 你的第二张名片:以后找工作,把你全是绿色提交记录的 GitHub 主页亮出来,比说什么都管用。

怎么注册?

  1. 访问官网 :打开浏览器,输入 github.com

    • 注:登录GitHub需要科学上网哦😁。
  2. Sign Up (注册)

    • 点击右上角的 "Sign up" 按钮。

    • Enter your email :填你常用的邮箱(重点:这个邮箱要记好,一会儿配置 Git 就要用它!,如果有谷歌邮箱尽量用谷歌邮箱注册,之后会很方便)。

    • Create a password:设置个复杂的密码。

  1. 人机验证 (最搞心态的一步)

    • GitHub 为了防机器人,验证码有时候很刁钻(比如让你选出"方向正确的椅子"或者"计算星系的数量")🤣
  2. 邮箱验证

    • 去你的邮箱里查收验证码,填回去。

    • 登录

2.3. 自报家门 (配置身份)

既然是写笔记,你得告诉Git是谁在写。这就像给你的画作盖章。

在终端里输入这两行(把名字和邮箱换成你的GitHub账号信息):

bash 复制代码
git config --global user.name "tarak520"
git config --global user.email "your_email@example.com"
  • --global:表示这台电脑上所有的项目都用这个名字。
  • 如果忘记邮箱,按照下图步骤查找:

2.3 补充(选看):若有多个GitHub账号需要上传,怎么办

  1. 概念解析:全局 vs 局部

你可以把 Git 的配置想象成你的**"着装规则"**:

  • Global (全局/默认):就像是你平时穿的**"便服"**。只要你没刻意换衣服,不管去哪(哪个项目文件夹),你都穿这一套。
  • Local (局部/特定):就像是**"工作制服"**。当你走进某个特定的公司(特定的项目文件夹)时,你换上了这套衣服。等你出了门,你又变回穿便服的样子了。
  1. 实操方法:如何穿"马甲"

    如果你电脑上主要是你在用(Tarak),但偶尔你要帮同学或者用另一个小号(比如 Tarak-Work)做某个特定项目。

    第一步:设置"便服" (也就是你刚才做的)

    这台电脑 90% 的情况都是你自己在用,所以我们在最外面设一个全局的:

    bash 复制代码
    git config --global user.name "Tarak"
    git config --global user.email "tarak@example.com"

    第二步:给特定项目穿"制服"

    假设你有一个项目叫 Secret-Project,在这个项目里,你想用另一个身份。

    1. 先进入这个文件夹

      bash 复制代码
      cd Secret-Project
    2. 去掉 --global,设置局部配置

      bash 复制代码
      git config user.name "Tarak-Work"
      git config user.email "work@company.com"

就这样! 在这个文件夹里,Git 会优先看"局部配置"。出了这个文件夹,它又会乖乖听"全局配置"的话。

为了让你更清楚逻辑,看这个优先级图:
有 没有 有 没有 Git 决定使用哪个名字/邮箱? 当前文件夹有 Local 配置吗? 优先使用 Local 配置 电脑有 Global 配置吗? 使用 Global 配置 报错: 告诉我你是谁!


特别提醒 (重点!)

这里有个非常容易混淆的概念,一定要听好哦!🧐

我们刚才设置的 user.nameuser.email,仅仅是**"签名"**。

就像你在画作右下角写的名字。你想签 "Leonardo da Vinci" 都可以,Git 不会管你是不是真的达芬奇。

但是!

当你 git push (推送到 GitHub) 的时候,GitHub 服务器需要**"查身份证"(验证权限),这时候看的是SSH 密钥**(就是我们下面生成的那个 Key)。

如果你有两个 GitHub 账号(比如账号 A 和账号 B),并且这两个账号都没有权限互相访问对方的仓库。那你不仅需要改上面的 config(改签名),还需要配置不同的 SSH Key

三、(选看)打通任督二脉(SSH配置)

拉取上传代码方式有HTTPS和SSH两种方式。HTTPS最常用,但是每次需要输入密码(公开库除外);SSH方式就是配置密钥,这样可以无需输出密码直接拉取上传,适合团队开发私有项目时使用。

GitHub需要知道"真的是Tarak在操作电脑",而不是黑客。最帅气的方式是使用 SSH密钥(就像我们要给你的电脑和GitHub之间配一把专属的钥匙,有了SSH密钥,我们每次推送代码的时候就费劲输入密码啦)。

  1. 生成私钥

    • 在终端输入(一路回车即可,快捷键:win + R -> cmd 回车):
    bash 复制代码
    ssh-keygen -t ed25519 -C "your_email@example.com"
    • 注:ed25519是一种加密算法,比老的RSA更快更安全。
    • 关键时刻来了!👀
      当出现:Enter file in which to save the key (...) :
      👉 什么都不要输!直接按【回车键 (Enter)】!
      (这表示:我们就用默认路径)
    • 设置密码
      当出现:Enter passphrase (empty for no passphrase):
      👉 直接按【回车键】!
      (这表示:我懒得设密码,我要免密)
    • 确认密码
      当出现:Enter same passphrase again:
      👉 再次直接按【回车键】!
      ✨ 成功标志:你会看到一个方框里有很多奇怪的字符(那是你的钥匙生成的随机图案),这才是生成成功了
  2. 获取公钥

    你需要把"锁芯"给GitHub。输入:

    bash 复制代码
    type .ssh\id_ed25519.pub

    把显示出来的那一长串以 ssh-ed25519 开头的字符复制下来。

    • 公钥 (id_ed25519.pub):这是**"锁"**。
      你可以把它贴在任何地方(比如贴在 GitHub 服务器上)。它的任务就是告诉 GitHub:"只有拥有匹配钥匙的人才能进来。"
    • 私钥 (id_ed25519):这是**"钥匙"**。
      它永远只保存在你的电脑里,绝对不能给别人看。

你的电脑 (持有私钥) GitHub (持有公钥) 嘿,我是Tarak,我要传代码! 是吗?我不信。我这有一把锁(公钥),你解开给我看看?(发送加密挑战) 电脑在后台悄悄取出 私钥进行解密运算... 解开了!答案是 XYZ! 答案正确!门已开,数据传过来吧! 你的电脑 (持有私钥) GitHub (持有公钥)

  1. 告诉GitHub
    • 登录 GitHub 网页。
    • 点击右上角头像 -> Settings -> SSH and GPG keys -> New SSH key
    • 标题随便填(比如 My Laptop),内容粘贴刚才那一长串字符。

四、VSCode 命令行实战(开始表演)

好,现在打开你的 VSCode 。按下快捷键 Ctrl + shift + ` (波浪号)或者点击上方的终端 -> 新建终端,唤出下方的终端。

4.1:场景一,学习别人的代码(git clone)

你在GitHub上看到了一个厉害的ESP32项目,想弄下来研究。

  1. 复制链接 :在GitHub项目页点击绿色的 <> Code 按钮,选择 HTTPS ,复制那个链接。
  • HTTPS:最常用,适合大多数项目拉取。
  • SSH:如果电脑上配置了该账号密钥,可以用这个,不用输入密码。
  1. 拉取代码
    • 新建文件夹,用VScode打开,并打开终端。

    • 方式一:HTTPS

      bash 复制代码
      git clone https://github.com/Tarak-web/PCB-Project-2025.git
      • clone:克隆。就像影分身术,把云端的代码完整地复制到你电脑上。
      • 因为是公开项目,下载时它不会问你要密码。
    • 方式二:SSH

      bash 复制代码
      git clone git@github.com:Tarak-web/PCB-Project-2025.git
      • 注意两种方式命令稍有不同。
      • 拉取成功,快去试一试吧!😁

4.2: 场景二:上传你自己的学习笔记(从0开始推送)

情况一:加入团队仓库协作开发

  • 此情况为已经拥有仓库,成员直接在本地对现有仓库进行拉取和推送操作。
  1. 邀请成员(项目管理者操作步骤)

    • 如果是项目管理者,需要做以下几步。
      1. 要选择开发的项目仓库(如果还没有创建仓库,请看情况二)
      2. 在该项目中,点击设置选项
      3. 点击协作(此时会要求输入密码,如果电脑配置了SSH,可以无需密码)
      4. 点击添加
      5. 输入要添加的队员GitHub账号名字,点击添加
  2. 队员接受队长邀请(此队员操作步骤)

    • GitHub或注册邮箱都可接受邀请,接受后可以看到受邀项目啦😄
  3. VSvode拉取和推送

    • 以下操作均在VS终端执行,第一次需要拉取仓库,之后每次更改项目,只需要执行拉取代码、推送、执行三步即可。

    • 新建一个空文件夹,用打开VScode,新建终端。

    • 拉取仓库 (Clone)

      bash 复制代码
      git clone git@github.com:朋友的名字/项目名.git
      • (注意:这里可以用 SSH 链接,因为你已经是协作者了,有权限免密推送!当然,如果你用的是校园网,可能会因为网络环境而拉取失败,此时尝试用HTTPS也可以,或者设置443端口。)

    • 拉取代码:每天干活前的第一件事:拉取最新代码 (Pull)

      • ⚠️ 只要不是你自己一个人开发,这步就是保命符!
        在你开始写新代码之前,必须先看看朋友有没有更新过。
      bash 复制代码
      git pull
      • 这会把云端最新的修改拉到你本地。如果不拉,等你写完想推的时候,Git 会报错让你先拉取,到时候解决冲突会很麻烦。
    • 写代码 -> 提交 (常规操作)

      bash 复制代码
      git add .
      git commit -m "Tarak增加了某个NB的功能"
      • 修改或添加后,进行提交。
      • -m` 后面是备注信息。这个习惯一定要养好,别写什么 "update" 这种没意义的词,要写清楚你干了什么。
    • 推送 (Push)

      bash 复制代码
      git push

情况二:创建自己的项目仓库

  1. 在GitHub上建立空仓库

    • 注意,Add README ,该选项会自动建立说明文文档。如果我们上传文件中需要自己写README文件,这里就不要选。
  2. 初始化(把普通文件夹变成Git仓库)

    • ⚠️注意:以下步骤场景为VScode终端。
    • 创建空文件夹,并在VScode中打开该文件夹,终端输入:
    bash 复制代码
    git init
    • 这时你会发现文件夹里多了一个隐藏的 .git 文件夹,这就是你的"时光机"引擎。(如果你隐藏了可能看不到)
  3. 写点东西 :创建一个 README.md 文件。

  4. 加入购物车(git add)

    bash 复制代码
    git add .
    • . 代表把当前文件夹下所有修改过的文件都放进暂存区。
  5. 存档(git commit)

    bash 复制代码
    git commit -m "第一次提交:创建笔记首页"
    • -m 后面是备注信息。这个习惯一定要养好,别写什么 "update" 这种没意义的词,要写清楚你干了什么。
  6. 关联远程仓库(告诉它要发到哪去)

    • 注意⚠️: (这一步只要做一次)
    • 复制仓库的克隆链接,我们这里使用SSH,HTTPS与此方式差不多。
    bash 复制代码
    git remote add origin git@github.com:tarak520/my-notes.git
    • origin 是给远程仓库起的小名,通常都叫这个。
  7. 推送到云端(git push)

    bash 复制代码
    git push -u origin main
    • (注:推送main为主支,master为分支。团队开发时,一般每个队员为master分支,然后代码整理好后整合为main)
    • -u:这就好比把"本地分支"和"云端分支"绑了一根红线。以后你再推,只需要输入 git push 就行了,不用那么啰嗦。
  8. 查看GitHub

    • 刷新GitHub,可以看到仓库中我们推送的文件

总结

  • 以上教程会涉及很多名字:GitHub账号名、邮箱、GitHub项目名称、本地文件夹名称。注意不要搞混名字。
相关推荐
uhakadotcom3 小时前
全面解析:GeoJSON 与 TopoJSON 的定义、差异及适用场景
前端·面试·github
摇滚侠4 小时前
零基础小白自学 Git_Github 教程,Git 命令行操作3,笔记20
笔记·git·github
摇滚侠4 小时前
零基础小白自学 Git_Github 教程,GitLFS ,笔记21
笔记·git·github
Cx330❀5 小时前
Git 入门指南:从 0 到 1 掌握版本控制
git·ubuntu·gitee·centos·github
灵魂学者16 小时前
Vue3.x —— 父子通信
前端·javascript·vue.js·github
元直数字电路验证17 小时前
GitHub Desktop 上传流程
github
Crystal32820 小时前
Git 基础:生成版本、撤消操作、版本重置、忽略文件
前端·git·github
Elastic 中国社区官方博客1 天前
用 Elasticsearch 构建一个 ChatGPT connector 来查询 GitHub issues
大数据·人工智能·elasticsearch·搜索引擎·chatgpt·github·全文检索
用户345848285051 天前
除了使用dict.fromkeys()和OrderedDict.fromkeys(),还有哪些方法可以实现列表去重?
github