引言 (Introduction)

  • 痛点切入: 你是否曾被“最终版_v3版.docx”这样的文件命名困扰?是否想和他人共同完成一个项目,却只能通过邮件传来传去?
  • 破除迷思: GitHub 不仅仅是程序员的专属工具。它是一个强大的项目管理和协作平台,适合作家、学生、设计师,以及任何想要清晰地记录项目进程的人。
  • 文章目标: 本文将带你从零开始,轻松上手 GitHub,让你也能利用它来管理你的个人项目、与人协作,甚至搭建免费的个人网站。

image.png

概况 (Overview)

  • GitHub 是什么?
    • 一个项目的“家”,可以存放所有相关文件、想法和历史记录。
    • 把它想象成一个带有时光机的 Google Docs,你可以随时回到任何一个历史版本。
  • 核心价值 (为什么你需要它):
    • 版本控制: 完美记录每一次修改,告别混乱的文件版本。
    • 高效协作: 与他人共同工作,流程清晰,互不干扰。
    • 任务管理: 自带待办事项清单 (Issues),让项目井井有条。
    • 个人展示: 你的 GitHub 主页就是你最好的项目作品集。

使用指南 (Usage Guide)

快速上手

  • 第一步:注册账户与基本设置
    • 创建你的 GitHub 账户。
    • 配置你的个人资料 (Profile),让它成为你的网络名片。
  • 第二步:核心概念速览
    • 仓库 (Repository): 单个项目的文件夹。
    • 提交 (Commit): 一次“保存”,并附上本次修改的说明。
    • 分支 (Branch): 创造一个“平行时空”,在新空间里实验,不影响主线。
    • 拉取请求 (Pull Request): 请求将“平行时空”的修改合并回主线。
  • 第三步:网页端轻松上手
    • 创建你的第一个仓库。
    • 通过网页界面上传文件、编辑内容、进行第一次 Commit。
    • (推荐) 下载 GitHub Desktop,无需命令行也能同步本地文件。

根据功能拆解使用

设置

  • Applications
    • Installed GitHub Apps:您授权给某些应用(如CI/CD工具、代码扫描工具)访问您代码仓库的权限。
    • Authorized GitHub Apps:已授权的OAuth应用,所有您曾授权过的第三方应用。场景:用GitHub账号登录第三方网站,如Vercel, Netlify, Gitpod
    • Authorized OAuth Apps:使用场景为:在您的代码仓库里安装一个自动化工具,比如 GitHub Actions 里的代码扫描工具、自动更新依赖的Dependabot、或者能自动给Issue打标签的机器人。这些工具是作为独立的“服务”在后台运行。

认证方式选择

  • HTTPS 方式
    • 使用 Token(个人访问令牌, Personal Access Token)进行认证
    • 适合新手,配置简单
    • 每次远程操作可能需要输入凭据(可缓存)
  • SSH 方式
    • 使用 SSH 密钥对(SSH Key Pair)进行认证
    • 配置一次后无需重复输入密码
    • 适合频繁操作和自动化场景
    • 密钥对(Pair),包括:私钥 (Private Key,永远保存本地,例如:~/.ssh/id_ed25519) 和公钥 (Public Key,本地和 GitHub 都会有,例如:~/.ssh/id_ed25519.pub)

开源协议

GitHub 常见开源协议梳理

为了便于理解和比较,我们将几种主流的开源协议按照“协议类型”分为两大类:宽松许可协议(Permissive)和著佐权许可协议(Copyleft)。宽松许可协议限制较少,而著佐权许可协议则要求衍生作品也以相同或相似的协议开源。

协议名称 (Identifier) 协议类型 主要特点 允许商用 允许修改 允许分发 允许私人使用 子类授权 使用条件
MIT License 宽松型 非常宽松,限制极少,是目前最受欢迎的协议之一。 必须包含原始的版权和许可声明。
Apache License 2.0 宽松型 与 MIT 类似,但提供了明确的专利授权,并要求对修改过的文件进行声明。 包含原始版权声明、专利声明和修改声明。
BSD 3-Clause License 宽松型 限制比 MIT 稍多,禁止使用贡献者的名字进行市场推广。 包含原始版权声明;未经许可,不得使用贡献者姓名进行宣传。
GNU General Public License v3.0 (GPL-3.0) 强著佐权 要求任何衍生作品(包括修改和链接了该代码的软件)都必须以 GPL-3.0 协议开源。 必须以 GPL-3.0 开源所有修改和衍生作品的源代码。
GNU Affero General Public License v3.0 (AGPL-3.0) 强著佐权 在 GPL-3.0 的基础上,增加了对网络服务的规定。如果通过网络提供服务,也必须提供源代码。 通过网络提供服务时,也必须以 AGPL-3.0 开源源代码。
GNU Lesser General Public License v3.0 (LGPL-3.0) 弱著佐权 允许动态链接到一个未以 LGPL/GPL 发布的程序中,而无需将整个程序开源。 仅要求对协议库本身的修改部分以 LGPL-3.0 开源。
Mozilla Public License 2.0 (MPL-2.0) 弱著佐权 介于宽松协议和强著佐权协议之间,要求对协议覆盖的文件的修改部分开源,但不影响整个项目。 必须开源对 MPL-2.0 协议下文件的任何修改。
The Unlicense 公共领域 将代码完全释放到公共领域,放弃所有版权。 无任何条件。

名词解释:

  • 子类授权 (Sublicensing): 是否允许在分发时使用不同的许可证。
  • 著佐权 (Copyleft): 一种利用版权法来确保软件自由的策略,要求衍生作品也必须以相同的自由许可证发布。

场景化用例 (Scenario-based Use Cases)

  • 作家/学生: 管理论文、小说或报告的各个草稿版本。
  • 设计师: 存放设计稿,清晰展示每个版本的迭代过程。
  • 项目经理: 使用 Issues 功能分配任务,用 Projects 功能跟踪项目看板。
  • Indie Maker: 托管项目代码,并使用 GitHub Pages 搭建产品官网或博客。
  • 任何人: 创建一个“生活清单”仓库,如读书清单、旅行计划、菜谱收藏等。

开源协作

提交PR(pull request)

  • Fork 项目 —— 拥有自己的副本
  • 修改自己的副本,并且commit
  • 提交 Pull Request —— 请求合并你的修改
    • 创建Pull Request:在您提交完修改后,页面通常会自动在顶部出现一个提示条,显示 “This branch is 1 commit ahead of a-wing/项目名:main.”。点击提示条右侧绿色的 “Contribute” 按钮,然后选择 “Open pull request”
    • 检查并提交
  • 等待合并
    • 查看验证原项目的pull requests
      • 有相关记录,则pr提交成功
    • 查看验证原项目的commit
      • 有相关记录,则合并到原项目中成功

横向对比 (Comparison with Alternatives)

  • GitHub vs. 网盘 (如 Dropbox, Google Drive):
    • 网盘: 侧重于文件存储和分享
    • GitHub: 侧重于过程管理和协作,不仅关心结果文件,更关心每一次变化的历史。
  • GitHub vs. GitLab/Bitbucket:
    • 三者都是优秀的代码托管平台,功能类似。
    • GitHub 拥有最大的开源社区和用户群体,是个人项目和开源协作的默认首选。

隐藏技巧/高级玩法 (Hidden Tips / Advanced Usage)

  • GitHub Pages: 几分钟内,免费拥有一个你的个人网站 (yourname.github.io)。
  • 神奇的 . 键: 在任何仓库页面按下键盘上的 . 键,会直接打开一个网页版的 VS Code 编辑器,在线修改超方便。
  • 万物皆可用 Issues: 不仅是 Bug 追踪,更是你的个人待办清单、想法收集箱。
  • Gist: 快速分享代码片段、笔记或配置文件的利器,一个“程序员的朋友圈”。
  • README 的艺术: 学会用 Markdown 语法,让你的项目首页 (README.md) 图文并茂,清晰美观。

结语 (Conclusion)

  • 总结: GitHub 的本质是一个围绕“版本控制”构建的协作平台。它强大、开放,且远不止于代码。
  • 鼓励: 不要畏惧,现在就去创建一个仓库,把你的简历、笔记或者任何一个想法放上去,开启你的 GitHub 之旅。
  • 互动: 欢迎在评论区分享你的 GitHub 主页,或者你发现的更有趣的用法!
  • 随着我的持续探索,本文也将不断更新,补充更多实用的高级技巧和避坑指南。欢迎收藏关注!

常见问题 (FAQ)

  • Q1: GitHub 是免费的吗?
    • A: 是的,对于个人用户和大多数团队来说,其核心功能(包括私有仓库)都是免费的。
  • Q2: 我必须会写代码才能用吗?
    • A: 完全不需要。你可以只使用网页界面和 GitHub Desktop 来管理任何类型的文件。
  • Q3: 我的项目必须公开吗?
    • A: 不是。你可以创建私有仓库,只有你自己和你邀请的协作者才能看到。
  • Q4: Git 和 GitHub 到底是什么关系?
    • A: Git 是一个工具(软件),负责跟踪文件的变化。GitHub 是一个网站(平台),为使用 Git 的项目提供一个家。好比 Word 是编辑软件,而 Google Docs 是一个在线协作平台。
    • 相关推荐:告别死记硬背:Git 常用命令学习指南
  • Q5:fork其他人的项目之后,会怎么样?
    • 获得独立控制权
      • 完全的个人副本
      • 完全的写权限
      • 独立的历史记录
      • 独立的设置
    • 与原始项目保持关联:
      • 向上游贡献代码 (Pull Request)
      • 从上游同步更新 (Sync Fork)
    • 对原始项目和社区的影响
      • 删除 Fork 仓库,对于原项目不会产生影响;提交了 Pull Request 并且已经被合并,则保留,提交了Pull Request还在讨论中,则不保留
      • 原始项目被删除或更改可见性
        • 原始公共仓库被删除,最活跃的一个 fork 仓库提升为新的“主仓库”
        • 原始私有仓库被删除,它所有的 fork 也会被一并删除
        • 原始公共仓库变为私有,它的所有 fork 会被分离,成为一个独立网络
      • 对社区的贡献可见性
        • fork 本身以及你在其中的提交都是公开可见的(假设原始项目是公开的)
        • 在 GitHub 的 “Network” 视图中,可以看到所有 fork 仓库与原始仓库之间的分支和合并关系图,这展示了整个社区的贡献生态。