git add <文件路径>告诉 Git "这次提交要包含这个文件"。建议逐个添加,方便检查。用 git add . 可以一次性添加所有变化,但提交前务必确认。
AI全栈技师图灵奖预备役
请输入访问密码
STAGE 01-2 · 看懂协作
不需要背命令。这一课把最常用的 Git 操作按场景分组,理解每条命令在做什么,用到的时候知道去哪里找。
01 / 先理解
先搞清楚 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-guide、fix/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 / 与远程同步
把本地成果推到远程仓库,把远程更新拉到本地。
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 / 临时保存
临时保存工作区,不打断当前进度。
git stash
git switch main,处理问题
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 / 课后自测
四道题,检验掌握程度。
clone 是第一次下载整个项目到本地,通常只执行一次。pull 是在已有项目中拉取远程的最新更新,日常工作中会反复使用。
add 是选择"哪些文件要进入这次提交",commit 是正式保存。分成两步可以仔细检查要提交的内容,避免误提交。
没有。Push 只是把工作分支上传到 GitLab,还需要创建 Merge Request、完成评审后才能合并到主分支。
有未提交的修改、但需要先切换分支或拉取更新时使用。处理完后再用 git stash pop 恢复。
12 / 图形化工具
不想用命令行的同学,这里有个图形化替代方案。
如果记不住命令行语法,完全可以用图形界面完成 git add、git commit(含说明)、git push 等日常操作。推荐 Sourcetree(Atlassian 出品,免费,macOS 和 Windows 均支持),安装地址:sourcetreeapp.com。
git add <文件>在「File Status」视图中勾选要提交的文件git commit -m "说明"点击「Commit」按钮,在文本框填写提交说明后提交git push点击工具栏「Push」按钮,确认后推送git log在「Log / History」面板直观查看提交历史与分支图git diff双击任意文件即可看到左右对比的差异视图本课核心