GitHub使用是什么Git是安装在你电脑上的分布式版本控制工具记录代码修改历史简单来说就是把你代码每次改动都拍照保存例如你代码改崩了git可以帮你恢复到昨天的版本。保存在你的电脑上不用联网。GitHub是基于 Git 的云端代码托管 协作平台相当于代码的网盘社交网络项目管理工具。就是说可以把你的git保存的文件放到的网上平台。作用存储代码仓库与追踪版本变更把整个项目文件夹传上网保留所有历史版本、多人协作开发PR/Code Review几个人一起做项目但互不影响最后统一合并、Issue 任务追踪相当于项目里的“待办事项或Bug报修单”、GitHub Actions 自动构建部署CI/CD你推送代码后GitHub自动帮你跑测试、打包、发布、GitHub Pages 免费静态网站把仓库当做“网页空间”、放HTML、CSS、JS直接生成一个网址常用于个人博客、项目说明页、技术简历主页。适用场景开源项目托管与参与贡献看/Star/Fork 优质源码个人项目备份、版本管理、技术作品集展示求职加分小型团队远程协作开发学习 Markdown、Git 工作流、开源文化优缺点优点全球最大开源生态、PR/Issue/Discussion 成熟、GitHub Actions CI/CD、免费私有仓库(限3协作者)、可当技术简历缺点①国内访问有时慢/不稳定 ②数据在境外涉密/政企项目不合规 ③大团队精细权限需付费建议搭配使用国内的Gitee(码云)、GItLab基础使用网页端创建仓库 在线编辑登录 GitHub → 右上角 ➕ → New repository填仓库名称 Repository name如 hello-github选 Public勾选 ✅ Add a README file → Create repository说明:Description: 填写对项目的介绍Choose visibility选择可见性分Public(全部可见)、Private(私有只有被邀请的人才能看到)Add README添加自述文件相当于项目的说明书或封面Add .gitignore添加忽略文件即不希望哪些文件被记录版本Add license添加许可证这是一份法律声明规定了别人能不能拿你的代码去商用、要不要开源。每一种许可证有相应的权限规定。3. 点击 README.md→ 铅笔图标 ✏️ 编辑→ Commit changes… → 底部填写 Commit message如 docs: update README→ Commit changes本地克隆(Clone)、修改、推送(Push)第一步: 按图中标注位置复制仓库地址在命令行中执行命令把GitHub 上的仓库下载到本地gitclone https://github.com/你的用户名/-hello-github.git作用是告诉git仓库的下载地址让它去这个地址完整复制整个仓库到当前本地文件夹中。说明clone只需要执行一次后续只需要执行pull拉取最新改动或push(推送自己的改动)。第二步: 进入仓库目录cd./-hello-github作用: 让终端从当前位置进入克隆下来的仓库文件夹中第三步: 创建一个新文件echo# Hello GitHubhello.txt作用在当前目录下创建一个名为 hello.txt的文件并写入内容 # Hello GitHub。第四步: 把改动依次加入暂存区、本地仓库、云端gitadd.gitcommit-mfeat: add hello.txtgitpush作用第一条命令告诉 Git, 我要把当前文件夹里的所有变动新增、修改、删除记录下来(-m后面的是备注信息)第二条提交文件到本地仓库, 第三条命令提交到云端服务器。如果出现 Recv failure: Connection was reset, 说明有连接问题,执行以下命令, 设置代理, 重新提交到服务器(HTTPS 方式,每次需要输密码)# 端口按你本地代理改常见 7890 / 10809 / 1087gitconfig--globalhttp.proxy http://127.0.0.1:7890gitconfig--globalhttps.proxy http://127.0.0.1:7890gitpush改用SSH连接(只用输一次密码,后续不用)简单但不严谨的理解生成一把钥匙私钥和一把锁公钥钥匙放在自己手里不能被别人得到但是锁任何人都可以获得想要连接服务器先把锁给服务器服务器将暗号用锁锁起来然后一起发给客户客户用钥匙打开锁获得暗号发给服务器这时候将公钥看作检验器检验暗号是否正确如果正确则成功证明客户身份成功连接后续本地连接时自动进行以上过程无需在输入密码。# 查看是否已经生成过密钥ls~/.ssh# 生成SSH密钥对,-t 指定密钥算法类型, -C 为注释,不一定要是邮箱,只是约定俗成而已,且这样容易区分服务器上的密钥是谁的ssh-keygen-ted25519-C你的邮箱example.com说明:Enter file in which to save the key→ 直接回车默认路径Enter passphrase→ 直接回车两次不设密码方便日常使 用想更安全也可以设# ssh-agent是 SSH 密钥管理器帮你记住私钥避免每次使用时重复输入密码(在有多个密钥或密码时最有用可以帮助节省操作如果只有一个密钥则可以跳过这一步和下一步)如果执行失败则打开git bash后执行以下代码eval$(ssh-agent-s)# ssh-add把私钥注册进 agentssh-add ~/.ssh/id_ed25519# 将公钥内容复制到剪贴板clip~/.ssh/id_ed25519.pub打开浏览器,进入网址 https://github.com/settings/keys点击 New SSH key - 填写Title(随便取名) - key type选择默认(Authentication Key) - key 粘贴刚才复制的公钥内容 - 点击 Add SSH key测试连接是否成功ssh-Tgitgithub.com改用SSH操作仓库gitclone gitgithub.com:用户名/仓库名.git已有HTTPS仓库改为SSH# 查看当前远程地址fetch表示下载地址push表示上传地址一般情况一致gitremote-v# 改成 SSH 地址gitremote set-url origin gitgithub.com:用户名/ 仓库名.git# 验证gitremote-v# 应该显示 gitgithub.com:...# 随便改个文件echoSSH testtest.txtgitadd.gitcommit-mtest: SSH connectiongitpush# ✅ 这次不需要输任何密码拉取最新代码(Pull) 分支协作本地创建新分支, 修改一些文件,提交到云端的对应分支# 拉取远端最新(即最新的云端仓库版本)gitpull# 创建并切换到新功能分支(把新分支看作草稿纸,完成之前就在草稿纸上写代码,等完成好再把新分支覆盖原来的主分支)gitcheckout-bfeature-demo# 修改一些文件echo# Hello GitHubhello.txtgitadd.gitcommit-mfeat: demo branch change# 对应更新到云端仓库的对应分支feature-demogitpush-uorigin feature-demo在Github查看到对应分支,如图到 GitHub 页面点击 Compare pull request(准备向审查人发起把新分支内容合并到主分支的请求,简称为PR)Fork 别人开源项目第一步打开测试仓库https://github.com/octocat/Spoon-Knife https://github.com/账号名/仓库名 右上角点 Fork → 选你自己的账号点击Creat fork → 等待跳转Fork 完成后地址变成 github.com/你的用户名/Spoon-Knife第二步gitclone gitgithub.com:你的用户名/Spoon-Knife.gitcdSpoon-Knife如果用 HTTPS 地址就把SSH地址换成https://github.com/你的用户名/Spoon-Knife.git第三步gitcheckout-bdocs/update-readme# 用编辑器在 README.md 末尾加一行比如# My first fork PR practice! gitaddREADME.mdgitcommit-mdocs: add my first fork PR notegitpush origin docs/update-readme第四步推送完后从网页进入新分支点击Contribute-Open pull request接着确认base repositoryoctocat/Spoon-Knife→ main原仓库你要合过去的地方head repository你的用户名/Spoon-Knife→ docs/update-readme你的分支填标题docs: add fork PR practice note点 Create pull request到这里 Fork PR 流程走完了原仓库维护者这里是 octocat会看到你的 PR你可以点 Close pull request关掉它不影响任何东西。