本地版本管理
负责记录文件变化、管理分支、保存提交历史,以及与远程仓库同步。
AI全栈技师图灵奖预备役
LESSON 02 · 基础协作
不需要背命令。这一课把最常用的 Git 操作按场景分组,理解每条命令在做什么,用到的时候知道去哪里找。
01 / 先理解
负责记录文件变化、管理分支、保存提交历史,以及与远程仓库同步。
保存团队共享的仓库,提供 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-guide、fix/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: 更新登录指引和流程图"
06 / 与远程同步
git push把当前分支的提交推送到 GitLab。第一次推送新分支时,需要运行完整命令 git push -u origin <分支名> 来建立对应关系。
git pull把远程仓库的最新修改拉取到本地,并自动合并。每次开始新任务前,建议先在主分支执行一次,确保本地是最新的。
# 第一次推送新分支
git push -u origin docs/update-login-guide
# 之后同一分支继续提交
git push
# 拉取远程最新内容
git pull
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
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 / 课后自测
clone 是第一次下载整个项目到本地,通常只执行一次。pull 是在已有项目中拉取远程的最新更新,日常工作中会反复使用。
add 是选择"哪些文件要进入这次提交",commit 是正式保存。分成两步可以让你仔细检查要提交的内容,避免误提交。
没有。Push 只是把你的工作分支上传到 GitLab,还需要创建 Merge Request、完成评审后才能合并到主分支。
当你有未提交的修改,但需要先切换分支或拉取更新时使用。处理完后再用 git stash pop 恢复。
本课核心