GitHub使用与简介

GitHub使用与简介

一、GitHub简介

        GitHub = 基于 Git 的代码托管 + 协作开发平台。程序员的 “云端代码网盘 + 协作工作台 + 项目社区”。

核心功能

  • 代码托管:把项目代码存在云端
  • 版本管理:记录每一次修改,可回滚、可对比
  • 团队协作:多人一起开发同一个项目
  • Issue(任务 / BUG 管理):提需求、报 bug、分配任务
  • Pull Request(PR):提交代码改动,让别人审核后合并
  • GitHub Actions:自动化测试CI\CD、打包、部署
  • GitHub Pages:免费搭建静态网站
  • Star / Fork / Watch:收藏、复制、关注别人项目
1.GitHub与Git的关系与区别

1)GitHub

  • 是云端服务,用来存放 Git 仓库
  • 提供网页界面、协作、权限、社区
  • 必须联网

2)Git

  • 是本地版本控制软件(命令行 / 桌面工具)
  • 记录代码历史、分支、合并
  • 不需要联网也能用

3)关系

  • GitHub 底层使用 Git
  • 你在本地用 Git 写代码 → push 到 GitHub
  • GitHub 让 Git 从 “本地” 变成 “云端 + 协作”

4)区别

Git 是工具,GitHub 是平台。

  • Git = 版本控制工具
  • GitHub = 代码托管与协作平台

二、账号注册与SSH配置

1.账号注册流程(用户名、邮箱、密码设置)
  • 国内QQ邮箱 网易邮箱、国外谷歌邮箱、苹果账号
2.git基础配置

修改已存在配置

# 清空配置 git config --global --unset user.email # 修改配置 直接重新输入命令覆盖即可

可选配置好用

# 开启彩色输出 git config --global color.ui auto # 扩大缓冲区 git config --global http.postBuffer 524288000 # 配置换行符规则 git config --global core.autocrlf true # 配置简写 和linux在bashrc中配置别名一样 git config --global alias.st status       # git st 替代 git status git config --global alias.br branch       # git br 替代 git branch

查看已经配置的内容

# 全局配置查看 git config --list # 或者 git config -l ​ # 局部配置查看 # 查看当前仓库的局部配置(进入仓库目录后执行) git config --local --list

局部配置用户名和邮箱

# 进入具体的项目路径下cd /path/to/your/project ​ # 配置用户名(替换成你的,比如 "zhangsan123") git config user.name "Your GitHub Username" ​ # 配置邮箱(替换成你的,比如 "[email protected]") git config user.email "Your GitHub Email"

全局配置用户名和邮箱

# 配置用户名(替换成你的,比如 "zhangsan123") git config --global user.name "Your GitHub Username" ​ # 配置邮箱(替换成你的,比如 "[email protected]") git config --global user.email "Your GitHub Email" ​ 

下载git工具

Git - Install for Windows
3.ssh配置

        为了让本地 Git 和 GitHub 之间的通信更安全、更方便,彻底摆脱每次操作都要输入账号密码的麻烦。

        HTTPS 方式的本质是 “用账号密码验证身份”, 如果你的密码泄露,别人就能操作你的仓库。

而 SSH 是基于 “密钥对” 验证。

    • 第一步提示「Enter file in which to save the key」:回车(用默认路径);
    • 第二步提示「Enter passphrase」:回车(设置密码的话每次用 SSH 都要输,新手直接免密);
    • 第三步提示「Enter same passphrase again」:再回车。
登录 GitHub 粘贴公钥
把公钥复制到 GitHub

复制公钥内容先把公钥文件里的内容全选复制,不同系统命令不同:

# Windows (git bash) clip < ~/.ssh/id_rsa.pub or clip < ~/.ssh/id_ed25519.pub ​ # Linux xclip -sel clip < ~/.ssh/id_rsa.pub or xclip -sel clip < ~/.ssh/id_ed25519.pub ​ # macos pbcopy < ~/.ssh/id_rsa.pub or pbcopy < ~/.ssh/id_ed25519.pub
启动ssh代理
# 启动 SSH 代理 eval "$(ssh-agent -s)" ​ # 将私钥添加到代理中 ssh-add ~/.ssh/id_rsa     or ssh-add ~/.ssh/id_ed25519
生成新的ssh密钥

执行下面的命令,把邮箱换成你 GitHub 注册的邮箱

ssh-keygen -t rsa -b 4096 -C "[email protected]" # 或者 这个格式 ssh-keygen -t ed25519 -C "[email protected]"

执行后终端会出现提示,全程按「回车」即可,不用输入任何内容:私钥:~/.ssh/id_rsa或者~/.ssh/id_ed25519(绝对不能泄露!泄露后私钥会失效);公钥:~/.ssh/id_rsa.pub或者~/.ssh/id_ed25519.pub(等下要复制到 GitHub)。

检查是否已有 SSH 密钥
# 下载git后 搜索打开git bash ls -al ~/.ssh

     1.点击右上角的头像 → 选择「Settings」(设置)

    2.在左侧菜单栏找到「SSH and GPG keys」(SSH 和 GPG 密钥)

3.点击右上角的「New SSH key」(新建 SSH 密钥)

4.填信息:

  • Title:随便填
  • Key type:默认「Authentication Key」就行
  • Key:把刚才复制的公钥内容粘贴进去(直接 Ctrl+V)

5.点击「Add SSH key」(添加 SSH 密钥)

6.弹出验证密码的提示,输入你的 GitHub 密码,确认即可。

验证 SSH 是否配置成功

回到终端git bash,执行命令

ssh -T [email protected]

第一次执行会提示「Are you sure you want to continue connecting」,输入 yes 回车。成功后会如图

Read more

深入探索 C++ 模板进阶特性:从类型参数到特化机制--《Hello C++ Wrold!》(12)--(C/C++)

深入探索 C++ 模板进阶特性:从类型参数到特化机制--《Hello C++ Wrold!》(12)--(C/C++)

文章目录 * 前言 * typename和class的唯一区别 * 非类型模板参数 * 模板的特化 * 函数模板的特化 * 类模板的特化 * 全特化 * 偏特化 * 模板分离编译 * 模板总结 前言 在 C++ 编程中,模板作为泛型编程的核心机制,不仅支持基础的类型参数化,还包含诸多进阶特性,这些特性是理解 STL 底层实现与复杂模板编程的关键。从typename与class的微妙差异,到非类型模板参数的编译期常量特性,再到模板特化的灵活应用,掌握这些知识能让你突破模板编程的瓶颈,深入理解 C++ 类型系统的强大表现力。 本章节将系统解析模板编程中的进阶概念:首先探讨typename在嵌套类型解析中的关键作用,明确其与class的本质区别;接着介绍非类型模板参数如何实现编译期配置,以及其在数组长度、缓冲区大小等场景中的应用;然后深入模板特化技术,通过函数模板特化与类模板的全特化 / 偏特化案例,展示如何针对特殊类型定制化实现;最后分析模板分离编译的困境与解决方案,理解模板实例化的编译期特性。 无论是解决模板编译错误时的困惑,还

By Ne0inhk
C++ 二叉搜索树全解析!增删查改 + key/value 场景 + 完整代码,一篇通关

C++ 二叉搜索树全解析!增删查改 + key/value 场景 + 完整代码,一篇通关

✨ 孤廖:个人主页 🎯 个人专栏:《C++:从代码到机器》 🎯 个人专栏:《Linux系统探幽:从入门到内核》 🎯 个人专栏:《算法磨剑:用C++思考的艺术》 折而不挠,中不为下 文章目录 * 正文: * 1. ⼆叉搜索树的概念 * 2. ⼆叉搜索树的性能分析 * 3. ⼆叉搜索树的插⼊ * 4. ⼆叉搜索树的查找 * 5. ⼆叉搜索树的删除 * 6. ⼆叉搜索树key和key/value使⽤场景 * 6.1 key搜索场景: * 6.2 key/val搜索场景 * 7. ⼆叉搜索树的实现代码 * 7.1 key模型代码实现 * 7.2 key/val代码实现 * 结语 正文: 1. ⼆叉搜索树的概念

By Ne0inhk

【C++物理引擎效率优化秘籍】:揭秘高性能仿真背后的核心技术

第一章:C++物理引擎效率优化概述 在开发高性能仿真系统或游戏引擎时,C++物理引擎的运行效率直接影响整体表现。物理计算涉及大量刚体动力学、碰撞检测与响应、约束求解等密集运算,若不加以优化,极易成为性能瓶颈。因此,深入理解并实施有效的效率优化策略至关重要。 数据结构设计优化 合理的内存布局能够显著提升缓存命中率。采用结构体拆分(SoA, Structure of Arrays)代替传统的数组结构(AoS, Array of Structures)可减少不必要的数据加载: // SoA 提高 SIMD 操作效率 struct RigidBodySoA { float* positions_x; float* positions_y; float* velocities_x; float* velocities_y; int count; }; 算法选择与复杂度控制 碰撞检测通常占物理模拟最大开销。使用空间分割技术如四叉树或动态BVT(Bounding

By Ne0inhk
深入理解C++ stl::list 底层实现+模拟实现

深入理解C++ stl::list 底层实现+模拟实现

欢迎来到干货小仓库!!!               "人生没有 Ctrl - Z ,但永远可以 push 新版本" 1.list的介绍 ①stl::list的底层实现是带头双向循环链表结构。 ②list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 ③双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。 2.list的使用 2.1list的构造 构造函数接口说明list(size_t n , const T& val = T())构造的list中包含n个值的val 元素list()构造空的listlist(const list& x)拷贝构造函数list(InputIterator first ,InputIterator last)用[ first , last) 区间中的元素构造list int main() { list&

By Ne0inhk