🔧 Git / GitHub / GitLab
Git · GitHub · GitLab
大白话:Git是用来“存档和回档”你写过的所有代码版本的工具——每次修改都可以像游戏存档一样保存下来,随时回到之前的任何版本。GitHub和GitLab是“云端仓库”,把你的代码和版本历史存到网上,方便自己和团队一起用。学Git就是学几个命令:保存、上传、下载、合并。
💻平台:Windows、macOS、Linux / Web
💰价格:开源免费
📂所属:信息与计算
🎯方向:计算机 · 软件工程
🔗 访问 Git 官网 →
🛠️ 专业软件导航 📍 你在这里
覆盖12大学科,数百个行业标配软件
基础科学 · 信息与计算 · 工程与制造 · 艺术与设计 · 生命与健康 · 社科与经管 · 农业与生态 · 生活与技艺 · 娱乐与媒介 · 人文基础 · 体育与健康
📦 核心库·框架·插件生态
覆盖15个技术生态,主流库、框架与插件一网打尽
Python生态 · JavaScript/TS · Java生态 · C/C++生态 · Go生态 · Rust生态 · DevOps云原生 · 移动端开发 · 游戏开发 · 设计师插件 · 编辑器插件 · 浏览器插件 · 生产力工具 · 学术科研
📚 学习资源与开发辅助
五大类软资源,从理论到实战的完整学习生态
权威课程平台 · 官方文档 · 技术问答社区 · 实战练习 · 开放数据集
📋 常用功能 · 按使用顺序排列

Git的核心工作流:写代码 → 暂存修改 → 提交保存 → 推送到云端。这套流程每天重复几十次。

1
📥
安装Git
从git-scm.com下载安装,打开终端输入 git --version 验证
🎯 Git就绪
2
👤
配置身份
git config --global user.name 和 user.email,告诉Git你是谁
🎯 每次提交都有署名
3
📂
初始化仓库
git init 创建新仓库,或 git clone 从GitHub上复制别人的项目
🎯 本地仓库就绪
4
✏️
写代码
正常写代码、修改文件。用 git status 随时看哪些文件改过了
🎯 修改被Git检测到
5
📦
暂存修改
git add 文件名 或 git add . 把修改加入暂存区,准备提交
🎯 修改被标记为"要保存"
6
💾
提交保存
git commit -m "写清楚这次改了什么" 把暂存的修改永久保存
🎯 生成一个版本快照
7
☁️
推送到云端
git push origin main 把本地提交上传到GitHub/GitLab
🎯 代码同步到云端
8
⬇️
拉取更新
git pull 把别人推的新代码拉下来,保持本地最新
🎯 和团队同步
9
🌿
分支管理
git branch 新分支名 创建分支,git checkout 切换分支,分开开发互不干扰
🎯 多人并行开发
10
🔀
合并与协作
在GitHub/GitLab上发Pull Request,队友审核后合并代码
🎯 团队协作完成

💡 日常使用最频繁的就是 add → commit → push 这三步,每天可能要重复几十次。先把这个循环练熟,再学分支和合并。

💡 善智点评 · Git/GitHub/GitLab到底怎么样?

Git好在哪:现代软件开发的绝对核心——没有版本控制,多人协作就是灾难。Git是免费的、分布式的(不需要联网也能提交)、极其快速的。回滚功能让你可以大胆改代码,搞坏了随时回退到之前的版本。分支功能让多人同时开发不同功能而互不干扰。GitHub在此基础上加了Pull Request、Issue、Actions等协作工具,是全球最大的开源社区。

坑在哪:Git的命令行学习曲线很陡——merge冲突、detached HEAD、rebase vs merge的选择,这些概念即使有经验的开发者也会头疼。Git的报错信息通常很难读懂,需要积累经验才能快速定位问题。最危险的命令是 git push --force 和 git reset --hard——用错了可能会丢掉别人的代码。

适合谁:所有写代码的人——从学生作业到企业级项目,Git是必备技能。不只是程序员,写技术文档、做设计的人也可以用Git来做版本管理。任何需要“保留修改历史、多人协作、随时回退”的场景都适合用Git。

免费替代:Git本身就是免费的。GitHub、GitLab、Bitbucket都有免费套餐。如果不想用命令行,GitHub Desktop和Sourcetree是免费的图形界面Git客户端。GitLab可以自己搭建私有服务器,适合企业内网使用。

普通人建议:学Git,不要试图一次学完所有命令。先学会 init、add、commit、push、pull 这五个命令,足够应付单人项目。遇到冲突再学 merge,需要多人协作再学 branch 和 Pull Request。最好的学习方式是把你的课程作业、个人项目都用Git管理起来,用着用着就熟了。

🧠 专业解析 · 如果你想深入理解版本控制
📖 核心定义

Git是由Linus Torvalds(Linux之父)开发的分布式版本控制系统。它用快照(snapshot)而非差异比较(delta)来记录文件变化,每次提交都是整个项目的一个完整快照。GitHub和GitLab是基于Git的在线代码托管平台,增加了Pull Request、Issue跟踪、CI/CD等协作功能。

🧠 核心逻辑:三区模型与分支指针

Git的核心是“三区模型”:工作区(你写代码的地方)→ 暂存区(git add后的临时区域)→ 仓库(git commit后的永久存储)。理解这三个区的流转关系,就理解了Git的基本工作方式。分支实际上是“指向某个提交的指针”——创建分支只是新建了一个指针,切换分支只是让HEAD指向不同的指针。Git的一切操作本质上都是在操作这些指针和快照。

🌳 功能结构树 & 学习资源地图
  • 🌱 层级一:新手起步
    安装Git · git init/clone · git add/commit · git push/pull · 在GitHub上创建仓库
    📚 Pro Git 中文版(免费在线书)
  • 🌿 层级二:核心能力
    分支操作(branch/checkout/merge) · 解决合并冲突 · git log/reflog查看历史 · .gitignore忽略文件 · SSH密钥配置
    📚 Learn Git Branching(交互式学习游戏)
  • 🌲 层级三:进阶工具
    git stash暂存未完成工作 · git rebase整理提交历史 · git cherry-pick挑选提交 · Pull Request协作流程 · GitHub Actions自动部署
    📚 GitHub官方文档
  • 🌳 层级四:专业应用
    Git Flow/GitHub Flow分支策略 · git bisect二分查找bug · git hooks自动化脚本 · 子模块(submodule)管理 · CI/CD流水线配置
    📚 Atlassian Git工作流指南
📋 前置依赖

基本的命令行操作能力(会用cd切换目录、会打字)。了解文件系统的基本概念(文件和文件夹的区别)。不需要任何编程基础——Git本身是管理文件的工具,不限于管理代码。但实际使用中,几乎总是和编程项目结合。

🚀 后续延伸

GitHub Pages免费建站 · GitHub Actions自动化测试部署 · GitLab CI/CD企业流水线 · Semantic Versioning版本号规范 · Conventional Commits提交信息规范

🪜 分步学习 · 3步从小白到会用

⚠️ 新手最容易踩的3个坑

❌ 坑1:commit信息随便写个"123"或"修了bug",回看历史完全不知道改了什么。
✅ 避开方法:养成写规范的commit信息习惯——用动词开头,简短描述这次改动的目的。比如"添加登录功能""修复首页图片加载问题"。团队协作时遵循Conventional Commits规范(feat/fix/docs等前缀)。好的commit信息是给自己和队友的“时间胶囊”。
❌ 坑2:在main分支上直接开发,改乱了不知道怎么回退。
✅ 避开方法:永远不要在main分支上直接写代码。新功能开一个新分支,在分支上开发和测试,确认没问题再合并到main。分支就像平行宇宙——搞坏了直接删掉重来,不会影响主线。
❌ 坑3:合并冲突时慌了手脚,直接把别人的代码覆盖掉。
✅ 避开方法:合并冲突是正常的,不是你的错。Git会在冲突文件里用 <<<<<< 和 >>>>>>> 标出冲突区域。仔细看两个版本的差异,和队友沟通确认保留哪个版本。不确定时先问队友,不要直接覆盖。VS Code等编辑器有可视化冲突解决工具,比手动编辑友好。

✅ 学到什么程度算"会了"

  • 能用 git init/add/commit/push/pull 完成单人项目的版本管理
  • 能在GitHub上创建仓库,推送代码,拉取更新
  • 能创建和切换分支,在分支上开发后合并回主线
  • 遇到合并冲突时不慌,能手动解决简单的冲突
🤖 AI助教 · 遇到不懂的,复制这段话问AI

在实际操作中卡住了?把下面这段话完整复制到任何AI对话框,把【】里的内容换成你的具体问题

我正在自学 Git / GitHub,请你以一位耐心、专业的Git老师身份,用大白话帮我拆解以下问题。

我的问题是:【在这里写你的具体问题,比如:怎么把本地的代码上传到GitHub上?】

要求:
1. 用大白话解释,不要用专业术语
2. 给出一步一步的操作指令,让我能照着做
3. 每一步都告诉我输入什么、点哪里、会看到什么结果
4. 如果这个操作有常见的坑,请提前告诉我怎么避开
5. 最后告诉我,做到什么程度就算成功了

我的水平:新手/刚接触Git
🎓 高阶版:帮我构建知识体系(点击展开)

如果你想系统深入地学习,把下面这段话复制到AI对话框,把【】里的内容换成你的具体情况

我正在深入学习 Git,请你以一位精通版本控制的认知导航专家身份,遵循“为知识建立秩序”的理念,帮我构建一个高阶学习地图。

我的当前水平:【描述你的水平,如:已经能熟练使用add/commit/push/pull,想系统学习分支管理、rebase和团队协作工作流】

请按以下框架回答:
1. 🧭 认知导航:先帮我理清【我想学的方向】在整个Git知识体系中的位置
2. 🗺️ 知识地图:用“结构化学习路径”列出3-4个阶段
3. 🪜 学习路线图:按“新手→进阶→专业”的顺序给出练习项目
4. ⚠️ 高阶避坑指南:列出这个方向最容易踩的3个深层坑
5. ✅ 学习效果自查清单:判断自己是否真正理解了这个方向的核心概念

请用大白话回答,但不要回避必要的专业术语。

💡 使用技巧:新手版适合“这个命令怎么用”类问题;高阶版适合“我应该怎么学Git”类问题。