AI 积木机器人 AI全栈技师图灵奖预备役
← 返回学习路径

课程内容

请输入访问密码

STAGE 01-2 · 看懂协作

日常会用到的 Git 命令

不需要背命令。这一课把最常用的 Git 操作按场景分组,理解每条命令在做什么,用到的时候知道去哪里找。

预计 12 分钟 10 个常用命令 建议收藏

01 / 先理解

终端里输入的命令,本质是 Git 在执行

先搞清楚 Git 和 GitLab 的关系,后面操作才不会迷糊。

先区分两个东西:Git 是跑在本地的版本管理工具,负责记录文件变化、管理分支和提交历史。GitLab 是远程协作平台,保存团队共享的代码仓库,提供 Merge Request、评审和权限管理。

所有终端里输入的 git xxx 命令,本质上都是 Git 在本地执行。GitLab 只是接收和展示这些数据的地方。

02 / 拿到项目

从克隆到推送:一个完整流程

先感受整体节奏,不用记住每条命令——后面会逐个拆开讲。

下面模拟一个完整流程:拿到新项目、改了点东西、然后推送到 GitLab。先感受整体节奏,后面会逐个拆开讲。

# 第一步:把远程项目下载到本地
$ git clone https://gitlab.example.com/team/demo.git
$ cd demo

# 第二步:创建自己的工作分支
$ git switch -c docs/update-login-guide

# 第三步:改文件,然后提交
$ git add README.md
$ git commit -m "docs: 更新登录指引"

# 第四步:推送到远程
$ git push -u origin docs/update-login-guide
看到了吗?整个流程就是:clone 下载 → switch -c 建分支 → add 选文件 → commit 保存 → push 上传。日常工作中会反复重复这个循环。

03 / 看看当前状态

每次动手前,先看看当前状态

养成习惯——动手前先看一眼当前状态,避免改错地方。

打开终端,进入项目目录,在动手之前先了解当前状况。

运行 git status,它会返回三件事:当前在哪个分支,有哪些文件被改了,哪些修改还没提交。养成习惯,每次动手前都看一眼。

再运行 git diff,逐行查看具体改了什么。提交前看一眼,可以避免把测试内容、密码或无关改动一起提交。

场景 接到任务:改登录页的文案。打开终端,先跑一遍 git status 看看在哪个分支、有什么未提交的改动。再跑 git diff 确认同事昨天改的内容没问题。然后才开始自己的工作。
git status       # 我在哪个分支?有哪些改动?
git diff         # 具体改了什么内容?

04 / 管理分支

每个任务在自己的分支上做

分支隔离:每个任务在自己的空间里,互不干扰。

git branch 列出所有本地分支,前面带 * 号的是当前所在分支。

git switch -c <分支名> 创建新分支并切换过去。开始一个新任务前执行。不带 -c 就是单纯切换到已有分支。

git branch                          # 查看所有分支
git switch -c docs/update-login-guide  # 创建并切换到新分支
git switch main                     # 切回主分支
分支命名建议:使用"类型/简短描述"的形式,例如 docs/update-login-guidefix/wrong-button-text。一看就知道这个分支在做什么。

05 / 保存修改

先选择文件,再写提交说明

add 选文件,commit 写说明——两步缺一不可。

把文件加入暂存区git add <文件路径>

告诉 Git "这次提交要包含这个文件"。建议逐个添加,方便检查。用 git add . 可以一次性添加所有变化,但提交前务必确认。

保存一条提交记录git commit -m "说明"

把暂存区的内容保存成一条版本记录。说明要写"做了什么",例如 docs: 更新登录指引,不要只写 update、test 或 123。

git add README.md
git add images/login-flow.png
git commit -m "docs: 更新登录指引和流程图"

06 / 与远程同步

Push 上传,Pull 下载

把本地成果推到远程仓库,把远程更新拉到本地。

上传 ↑git push

把本地提交上传到 GitLab。第一次推送新分支时,需要运行完整命令来建立对应关系:

git push -u origin <分支名>

之后同一分支继续提交,直接 git push 就行。

下载 ↓git pull

把远程的最新修改下载到本地,并自动合并。每次开始新任务前,建议先在主分支执行一次,确保本地是最新的。

git pull

如果本地和远程都改了同一个文件,可能会产生冲突,需要手动解决。

# 第一次推送新分支
git push -u origin docs/update-login-guide

# 之后同一分支继续提交
git push

# 拉取远程最新内容
git pull

07 / 查看历史

谁在什么时候改了什么

回溯历史、定位某次特定修改。

git log                # 完整提交记录(按 q 退出)
git log --oneline      # 每条一行,快速浏览
git log --oneline -10  # 只看最近 10 条

每条提交都有一个唯一的 hash(如 a3f7b2c),可以用它来定位或回退到某次特定的提交。

08 / 临时保存

还没改完,但要先切去做别的事

临时保存工作区,不打断当前进度。

背景 正在功能分支上改一半东西…
同事 "帮我看看 main 分支上有个 bug"
步骤 1 先把没改完的藏起来 → git stash
步骤 2 切到 main → git switch main,处理问题
步骤 3 切回来 → git switch docs/my-feature,恢复修改 → git stash pop
结果 继续刚才的工作,刚才藏起来的修改全部回来了。
记住:git stash = 藏起来,git stash pop = 取回来。就是工作区的临时存/取。

09 / 速查表

一页看完所有常用命令

日常够用的命令全在这里,收藏备用。

场景命令说明
拿到项目git clone <地址>第一次下载项目到本地
看状态git status当前分支和文件变化概况
看改动git diff未提交的具体修改内容
看分支git branch列出本地所有分支
创建分支git switch -c <名>创建并切换到新分支
切换分支git switch <名>切换到已有分支
选择文件git add <文件>把文件加入暂存区
提交git commit -m "说明"保存一条版本记录
上传git push把本地提交推送到远程
下载git pull把远程更新拉取到本地
查历史git log --oneline简洁查看提交记录
临时保存git stash藏起未提交的修改
恢复git stash pop取回刚才藏起来的修改

10 / 暂时不要碰

这些命令留到进阶课程

用错会丢代码——先认识它们,以后别碰。

git reset --hard git push --force git rebase git cherry-pick

它们可能丢失本地修改或改写共享历史。遇到冲突、推送被拒绝或分支状态异常时,先停止操作并请团队成员协助。

11 / 课后自测

确认理解了每条命令的用途

四道题,检验掌握程度。

1. git clone 和 git pull 有什么区别?

clone 是第一次下载整个项目到本地,通常只执行一次。pull 是在已有项目中拉取远程的最新更新,日常工作中会反复使用。

2. git add 和 git commit 为什么是两步?

add 是选择"哪些文件要进入这次提交",commit 是正式保存。分成两步可以仔细检查要提交的内容,避免误提交。

3. git push 之后,内容就进入主分支了吗?

没有。Push 只是把工作分支上传到 GitLab,还需要创建 Merge Request、完成评审后才能合并到主分支。

4. 什么时候该用 git stash?

有未提交的修改、但需要先切换分支或拉取更新时使用。处理完后再用 git stash pop 恢复。

12 / 图形化工具

命令行不顺手?用 Sourcetree 可视化操作

不想用命令行的同学,这里有个图形化替代方案。

如果记不住命令行语法,完全可以用图形界面完成 git addgit commit(含说明)、git push 等日常操作。推荐 Sourcetree(Atlassian 出品,免费,macOS 和 Windows 均支持),安装地址:sourcetreeapp.com

命令行操作Sourcetree 等价操作
git add <文件>在「File Status」视图中勾选要提交的文件
git commit -m "说明"点击「Commit」按钮,在文本框填写提交说明后提交
git push点击工具栏「Push」按钮,确认后推送
git log在「Log / History」面板直观查看提交历史与分支图
git diff双击任意文件即可看到左右对比的差异视图
建议:先用命令行理解 Git 的基本概念(本课 01–09 节),再用 Sourcetree 提升日常效率。理解原理后,图形工具会事半功倍。

本课核心

理解每条命令在做什么,比背命令更重要