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

LESSON 02 · 基础协作

日常会用到的 Git 命令

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

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

01 / 先理解

你在终端里输入的,其实是 Git 命令

Git

本地版本管理

负责记录文件变化、管理分支、保存提交历史,以及与远程仓库同步。

GitLab

远程协作平台

保存团队共享的仓库,提供 Merge Request、评审、权限和自动化流水线。

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

02 / 拿到项目

第一次接触项目时,只需要执行一次

把远程项目复制到本地git clone <地址>

在 GitLab 项目页面点击 Clone 按钮复制地址,然后在终端中运行。执行完成后,本地会多出一个项目文件夹。

进入项目目录cd <项目文件夹>

后续所有 Git 命令都要在项目目录中运行。如果终端报 not a git repository,通常是因为你不在项目文件夹里。

git clone https://gitlab.example.com/team/demo.git
cd demo

Clone 通常只在第一次获取项目时执行。之后要更新本地内容,用的是 git pull

03 / 看看当前状态

随时知道"我在哪、改了什么"

查看当前分支和文件变化git status

告诉你现在在哪个分支,有哪些文件被修改、新增或删除,以及哪些修改还没有被提交。养成经常运行的习惯。

查看具体改了什么git diff

逐行显示还没提交的具体修改。提交前看一眼,可以避免把测试内容、密码或无关改动一起提交。

git status
git diff
日常节奏:每次提交前,先 git status 看全局,再 git diff 看细节。确认没有问题,再进入下一步。

04 / 管理分支

每个任务都在自己的分支上完成

查看所有分支git branch

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

创建并切换到新分支git switch -c <分支名>

开始一个新任务前执行。-c 表示创建新分支并自动切换过去。也可以用 git checkout -b,效果一样。

切换到已有分支git switch <分支名>

不带 -c 就是单纯切换分支。切换前最好先确认没有未提交的修改。

git branch
git switch -c docs/update-login-guide
git switch main
分支命名建议:使用"类型/简短描述"的形式,例如 docs/update-login-guidefix/wrong-button-text。如果公司已有规范,以公司规范为准。

05 / 保存修改

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

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

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

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

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

git add README.md
git add images/login-flow.png
git commit -m "docs: 更新登录指引和流程图"
add 选择哪些文件要进入这次提交 commit 把选好的文件保存成一条记录 -m 后面紧跟提交说明 说明 描述做了什么,方便以后查找

06 / 与远程同步

把本地修改推上去,把远程更新拉下来

把本地提交上传到远程git push

把当前分支的提交推送到 GitLab。第一次推送新分支时,需要运行完整命令 git push -u origin <分支名> 来建立对应关系。

把远程更新下载到本地git pull

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

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

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

# 拉取远程最新内容
git pull
push 本地 → 远程,上传提交 pull 远程 → 本地,下载并合并 -u 记住本地分支和远程分支的对应关系 origin 克隆项目时自动建立的远程仓库名称

07 / 查看历史

谁在什么时候改了什么

查看提交记录git log

按时间顺序列出提交历史,包括作者、日期、提交说明和 commit hash。按 q 退出浏览。

简洁模式查看git log --oneline

每条提交只显示一行,快速浏览整体历史。适合在项目里快速了解"最近都发生了什么"。

git log
git log --oneline
git log --oneline -10    # 只看最近 10 条

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

08 / 临时保存

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

把没提交的修改暂存起来git stash

工作到一半需要切换分支或拉取更新时使用。Git 会把未提交的修改"藏"起来,让工作区变干净。

把藏起来的修改恢复git stash pop

切回原来的分支后执行,刚才藏起来的修改会重新出现。恢复后这条 stash 记录会自动删除。

# 临时保存未完成的修改
git stash

# 切换分支去做别的事
git switch main
git pull

# 切回来,恢复修改
git switch docs/my-feature
git stash pop
典型场景:你正在功能分支上改东西,同事让你帮忙看一下 main 分支的问题。先 git stash → 切到 main → 看完切回来 → 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 恢复。

本课核心

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