Git 与 GitHub¶
Git 的学习一定非常注重实践, 许多指令的作用也能在一次次实践中弄懂。
因此以下只对 Git 的学习进行简单指导,诸如如何注册等不再提及,需读者自行多实践并检索相关知识。
简单说说 Git 与 GitHub 能做些什么¶
- 记录历史:每次改动都存一个快照,可随时比较、回退。
- 并行开发:不同人在不同分支上开发,最后合并。
- 备份与同步:本地、远程仓库互为备份;push/pull 即可同步。
- 代码审查:通过 Pull Request/Merge Request 流程讨论和审阅代码。
- 发布管理:打 Tag 做版本发布,或用分支维护多个线上版本。
对于新手来说,可以试着将自己刚学习编程时写的代码都通过 Git 上传到 GitHub 进行保存与管理。
以下概念需要读者自行检索了解:
Git 与 GitHub 之间的关系¶
Git 只是一个装在本地电脑里的工具,负责做版本控制,可以记录文件的每一次变化。
而 GitHub 是全球最大的开源代码托管平台(简单来说就是一个可以存代码仓库的网站),把 Git 仓库放到云端服务器上,方便多人共享、浏览和协作,还提供 Issues、Pull Request、CI/CD 等附加功能。也有人将 GitHub 比喻成“程序员的朋友圈 + 代码仓库”。
❓ 新手常见问题:
Q:一定要用 Git 命令吗?
A:不需要!平台提供网页操作(上传/下载/编辑),入门可不学命令。
Q:私有项目收费吗?
A:主流平台(GitHub/Gitee/GitLink)免费提供私有仓库。
Q:代码被看到会泄密吗?
A:创建时选择 🔒Private(私有)选项即可隐藏代码。
以下术语需要读者自行了解:
Git 基础配置¶
使用 Git 之前,首先需要进行一些基本配置,包括设置用户名和邮箱。这些信息会与每次提交(Commit)关联,用于标识代码的贡献者。
篇幅有限,具体操作请读者自行检索如何配置,比如如何使用 SSH 连接远程仓库。可以先在 GitHub 上找到一个开源仓库(如 https://github.com/octocat/Hello-World),再用 SSH 方式克隆到本地。
创建并管理仓库(Repository)¶
光会浏览别人的项目还停留在非常初步的阶段,我们可以自己创建仓库来管理。
如何创建仓库并不难,简单检索即可上手。
同时也可以了解什么是开源许可证(license),如何选择开源许可证、各个许可证的内容是什么,以及自己感兴趣的项目使用了哪个许可证。
而在开发和协作时,我们经常需要区分两个重要概念:本地与远程:
在 Git 中,本地通常指你的本地仓库,而远程指远程仓库(如 GitHub)。你需要通过 git push 将本地的更改同步到远程,或通过 git pull 将远程的更新拉取到本地。这种“本地—远程”协作模式是现代开发的核心实践之一。
Git 基础操作¶
Git 有很多指令,对于新手来说常用的并不多。以下为一些指令速记:初始化项目(git init)、克隆仓库(git clone)、基本操作(git add、git commit、git status、git log)、分支管理(git branch、git checkout、git merge),以及与远程仓库交互(git pull、git push、git fetch)。
新手可以先从 git init
、git clone
、git add
、git commit
、git pull
、git push
以及 git log
开始,其余的完全可以等需要的时候再学习。
补充:在学习过程中,推荐先了解何为暂存区(Staging Area),例如如何修改暂存区、如何撤销暂存区的更改等。
为何需要分支管理¶
良好的分支策略能降低协作冲突、隔离风险,并支撑清晰的发布与回滚流程。
- 并行开发:不同功能可以同时开发,互不影响。
- 方便试验:新想法在独立分支尝试,失败可直接丢弃。
- 协作清晰:每个分支代表一个任务,合并更直观。
- 版本管理:不同分支对应不同用途,如:
- main:稳定版
- develop:开发版
如何写好 commit message¶
Commit message 相当于是对自己一次代码更改的简单说明;在与他人合作时,别人也可以一眼看出你这次更改主要是什么内容。
有很多项目都有自己的贡献指南,会指出在贡献此项目时 commit message 应该遵循怎样的规范。我们完全可以通过查看别人的 commit 记录来模仿,从而规范自己的 commit message,在此便不做额外阐述。
如何提交 PR(Pull Request)¶
一句话概括其流程:Fork → Clone → 新建分支 → 修改代码 → commit → push → 在 GitHub 点击 “Compare & pull request” → 填标题/描述 → 提交。
至于为何要提交 PR,简单来说就是为了让代码在正式合并前可被同事审查、跑自动测试,防止把 bug 直接推进主干。
学习资料补充:¶
Learning Git Branching 在此教程中能执行相应的命令,还能看到每个命令的执行情况,被称为最好的 git 学习实践教程。