摘要:本文从零开始,用动画讲解加实战演示的方式,系统覆盖Git初始化、提交、分支、合并、冲突解决、远端同步、GitHub协作全流程,以及Cherry-pick、Stash、Rebase等进阶操作。全文含对比表格和AI辅助实战案例,可直接落地。
目录
1. Git与GitHub核心概念速览
| Git | 分布式版本控制系统 | 记录代码历史,支持回溯和协作 |
| GitHub | 代码托管平台 | Git仓库的Hub,全球最大的开源协作社区 |
| Repository(仓库) | 被Git管理的项目文件夹 | 存放代码和完整历史记录 |
| Commit(提交) | 仓库状态的快照 | 每次保存一个版本,形成历史链路 |
| Branch(分支) | 独立的开发线 | 并行开发,互不影响 |
| Merge(合并) | 将分支改动合并到另一分支 | 功能开发完成后整合回主干 |
| Worktree(工作树) | 将分支代码复制到新文件夹 | 并行开发,互不干扰 |
| Remote(远端) | GitHub上的仓库副本 | 备份与协作的桥梁 |
| Pull Request(PR) | 合并分支的提案 | 开源协作的标准代码审核方式 |
| Fork | 复制他人仓库到自己的名下 | 参与开源项目的第一步 |
在AI时代,只需掌握上述概念的本意,即可用自然语言指挥AI(如Codex、Claude Code)完成所有Git操作。
2. 环境准备与Git初始化
2.1 安装Git与VSCode
- Windows:从Git官网下载安装包,一路Next。
- macOS:终端执行xcode-select –install安装命令行工具包(含Git)。
- 验证:git –version。
2.2 注册GitHub账号
右上角Sign up,填写用户名、邮箱、密码,邮箱验证。
2.3 配置AI工具并绑定Git与GitHub
以Codex为例:
2.4 本地初始化:git init
- 在VSCode中打开文件夹,Source Control,Initialize Repository。
- 文件夹下会出现.git子文件夹(存储所有Git数据)。删除.git即取消Git管理。
2.5 .gitignore:声明不被Git管理的文件
| .env | 存放密钥,不应提交 |
| node_modules/ | 第三方依赖,可通过npm install还原 |
| .DS_Store | macOS系统文件 |
在项目初始化时建议让AI自动创建.gitignore。
3. Commit:版本控制的基本单元
- 含义:记录仓库在某时间点的完整快照。每次Commit会形成一条历史链路,支持回溯查看任意版本。
- Commit ID(Hash):Git自动生成的唯一标识(长ID和短ID功能相同,短ID方便记忆)。与AI交流时使用Commit ID更精确。
3.1 VSCode提交操作
- 修改文件,Source Control,填写Commit Message,点击Commit。
- 每次让AI完成一个小的功能点就做一次提交,便于回溯。
3.2 Git的三种后悔药
| Discard | 放弃未提交的更改 | 文件已改但未Commit | 无法恢复 |
| Reset | 强制回退到某个历史状态 | 单人分支或未推送到远端时 | 多人协作分支禁止使用,有搞丢代码风险 |
| Revert | 生成反向提交抵消某次Commit | 多人协作分支,安全回退 | 保留其他提交不变,推荐优先使用 |
AI辅助示例:
- 把仓库还原到这次提交的状态,它后面的所有提交都不要了,AI执行git reset –hard
- 把某次提交撤销掉,保持其他的不变,AI执行git revert
- 比较这两次提交有什么区别,AI自动完成统计和列出改动
4. 分支与合并
4.1 Branch(分支)
- 含义:独立开发线。默认main或master为主干。
- 创建分支基于指针实现(不拷贝代码),分支上的修改互不影响。
- 适用场景:多人协作、多Agent并行开发。
4.2 Worktree(工作树)
- 含义:创建新分支并完整复制代码到新文件夹。主文件夹和分支文件夹可并行开发。
- AI辅助:在Codex中右键创建永久工作树即可创建,完成后让AI合并回主干。
4.3 Merge(合并)
- 功能开发结束后将分支合并回主干。
- 合并冲突:当两个分支修改同一文件的同一行时,需人工决定保留哪个版本。
- AI解决冲突:AI会提供选项(保留A、保留B、两者都保留),用户选择后自动完成。
分支合并优先级建议:在单人或AI开发分支上可使用rebase(历史更干净),多人协作分支必须使用merge。
5. Git分区与远端同步
5.1 Git四大分区
| Working Directory(工作区) | 本地磁盘文件夹 | 直接编辑文件 |
| Staging Area(暂存区) | Commit前的检查点 | git add(VSCode已合并至Commit) |
| Local Repository(本地仓库) | 存储Commit历史 | git commit |
| Remote Repository(远端仓库) | GitHub上的仓库副本 | git push / git pull |
5.2 绑定远端仓库的两种方法
5.3 同步远端改动
- git pull(或VSCode向下箭头):将远端最新改动拉取到本地。
- git push(或VSCode Sync Changes):将本地提交推送到远端。
6. GitHub网站核心功能
| Repository页面 | 显示源代码、README、Commit历史 |
| Star | 点赞收藏,反映项目热度 |
| Fork | 复刻项目到自己的名下,用于深入学习和贡献代码 |
| Issues | 与作者讨论Bug和新功能,Open表示未解决,Close表示已关闭 |
| Releases | 发布版本和打包软件下载 |
| Codespace | 在浏览器中申请远程运行环境,调试代码 |
6.1 实用快捷键
| / | 打开搜索 |
| T | 定位文件搜索栏 |
| L | 定位到行号(支持复制该行和Permalink) |
| ? | 打开快捷键速查表 |
| . | 打开网页版VSCode |
7. 多人协作与开源贡献标准流程
7.1 标准流程(Fork到PR)
7.2 协作者模式(跳过Fork)
- 管理员在Settings,Collaborators中添加协作者。
- 协作者接受邀请后,可直接向项目仓库Push代码(无需Fork),后续PR流程相同。
8. Git进阶操作
| Cherry-pick | 拣选特定Commit合并到当前分支 | 只合并部分提交,排除不需要的改动 |
| Stash | 临时存储未写完的代码 | 紧急切换分支时暂存工作进度,切换回来后用pop恢复 |
| Rebase(变基) | 更改分支的根基,使历史树更干净 | 单人分支使用(必须强制推送);多人协作分支禁止使用 |
关键限制:git push -f(强制推送)仅适用于单人使用分支,多人协作分支上使用会覆盖他人代码。
9. 参考资源
- 本文基于B站视频《Git+Github核心概念大串讲,从零到一全攻略,详细实战教程》整理,由Ai好记进行转录,快速归纳核心概念和操作步骤。如果你也有音视频解析需求,可以试试Ai好记,便于在实操时快速查阅关键命令和流程~
如有问题欢迎评论区交流。如果本文对你有帮助,点赞、收藏、转发支持~



