1. 零基础扫盲
在敲任何命令前,先理解 Git 和 GitLab 的底层逻辑。
| 概念 | 通俗解释 | 对应场景 |
| Git |
介绍 Git 与 GitLab 的基础使用。涵盖环境搭建、SSH 密钥配置、仓库克隆、分支管理、代码提交与推送、Merge Request 协作流程及常见报错处理。重点强调不要直接修改主分支,需通过功能分支开发并审核合并。适合新手快速上手版本控制工具。

在敲任何命令前,先理解 Git 和 GitLab 的底层逻辑。
| 概念 | 通俗解释 | 对应场景 |
| Git |
| 本地的代码版本管理工具,能记录每一次的代码修改,还能切换不同版本 |
| 本地电脑改代码、保存修改、回退错误修改 |
| GitLab | 远程的代码仓库服务器,用来存放团队共享的代码,也是协作的平台 | 团队共享代码、协作开发 |
| 核心四区域 | ①工作区:实际写代码的文件夹;②暂存区:临时存放准备提交的修改;③本地仓库:Git 本地保存的所有提交记录;④远程仓库:GitLab 上的仓库 | 日常操作:工作区改代码 → 暂存区 (git add) → 本地仓库 (git commit) → 远程仓库 (git push) |
| 分支 (Branch) | 代码的平行宇宙,主分支是正式版本,新建的功能分支是开发版本 | 避免直接改主分支,防止代码混乱 |
以 Win10 为例
从官网 https://git-scm.com/ 下载对应版本的 Git。


其余使用默认选项即可。
注意:建议最后一步勾选 Launch Git Bash,打开 Git 命令行(后续所有命令在 Git Bash 里敲)。
输入以下命令,验证 Git 安装是否成功:
git --version

Git 会记录每一次提交的作者,必须和公司 GitLab 的账号一致,否则提交记录会显示未知用户。
git config --global user.name "你的 GitLab 用户名"
git config --global user.email "你在公司的邮箱"
验证配置是否成功:
git config --list

如果不配这个,每次拉/推代码都要输账号密码,还容易报错。公司内网 GitLab 几乎都要求用 SSH 密钥:
ssh-keygen -t ed25519 -C "你在公司的邮箱"
cat ~/.ssh/id_ed25519.pub,会显示一串以 ssh-ed25519 开头、你的邮箱结尾的字符串,全选复制(按 Ctrl+C,注意不要漏字符);ssh -T git@公司域名(替换成你公司的 GitLab 域名),如果显示 Welcome to GitLab, @你的用户名!,说明 SSH 配置成功!假设公司 GitLab 有一个测试项目(如果没有,让 leader 给你开一个测试仓库,或自己新建一个),我们完整走一遍开发→提交→提 MR→合并的流程,每一步都写死命令和操作:
登录公司 GitLab → 进入目标项目 → 点击页面上方的 Clone(克隆)按钮 → 选择 SSH 标签 → 复制显示的地址(比如 git@gitlab.公司域名.com:测试项目组/测试项目.git)。
目的:把 GitLab 上的远程仓库,复制一份到你本地电脑,后续所有开发都在本地克隆的文件夹里做。
cd /c/Users/你的用户名/Desktop
git clone git@gitlab.公司域名.com:测试项目组/测试项目.git
公司规范:main/master(主分支)是生产环境代码,dev(开发分支)是团队共用分支,你必须从 dev 分支新建自己的功能分支开发。
cd 测试项目 # 进入项目根目录,后续所有命令都要在这个目录下执行!
git branch -a # -a 表示 all,查看所有分支
输出示例:* main(* 表示当前在 main 分支)、remotes/origin/dev(远程的 dev 分支)。
# 切换到 dev 分支(如果本地没有,会自动创建并关联远程 dev)
git checkout dev
# 拉取远程 dev 分支的最新代码(同步同事的修改)
git pull origin dev
# -b 表示'新建并切换到该分支',示例:feature/20251209-新增登录功能
git checkout -b feature/20251209-新增登录功能
git branch,会看到 * feature/20251209-新增登录功能,说明已成功切换到自己的功能分支。现在你可以在测试项目文件夹里修改代码(比如新建一个 login.py 文件,写几行测试代码),然后把修改提交到本地仓库:
git status
预期输出:Untracked files: (use "git add ..." to include in what will be committed) login.py,说明 Git 检测到你新建了 login.py 文件。
# 方式 1:添加指定文件(推荐,避免误加无关文件)
git add login.py
# 方式 2:添加所有修改(适合一次性改了多个文件)
# git add .
再次执行 git status,会看到 Changes to be committed: login.py,说明文件已进入暂存区。
将暂存区的修改提交到本地仓库(相当于结账,生成一条提交记录):
# -m 后面是提交信息,必须按公司规范写!格式:类型:功能描述
# 常见类型:feat(新增功能)、fix(修复 bug)、docs(修改文档)、style(格式调整)
git commit -m "feat: 新增用户登录接口,实现手机号验证"
预期输出:显示 1 file changed, 3 insertions(+),说明提交成功。
目的:把你本地的功能分支和提交记录,上传到 GitLab,让同事能看到,也为了后续提 MR。
# origin 是远程仓库的默认名称,后面跟你的功能分支名
git push origin feature/20251209-新增登录功能
预期输出:显示 Total 0 (delta 0), reused 0 (delta 0),最后提示 To gitlab.公司域名.com:测试项目组/测试项目.git * [new branch] feature/20251209-新增登录功能 -> feature/20251209-新增登录功能,说明推送成功。
MR 是请求把你的功能分支合并到 dev 分支,需要 leader / 同事审核通过后才能合并,这是公司协作的关键步骤(对应 GitHub 的 PR):
# 第一步:切回 dev 分支,拉取合并后的最新代码
git checkout dev
git pull origin dev
# 第二步:删除本地的功能分支(-d 表示删除已合并的分支)
git branch -d feature/20251209-新增登录功能
# 第三步:删除远程的功能分支(可选,公司一般要求合并后删除)
git push origin --delete feature/20251209-新增登录功能
原因:SSH 密钥配置错误,解决步骤:
ssh -T git@公司域名,如果显示 Welcome 说明没问题,否则重新生成密钥。原因:你开发时,同事已经修改了 dev 分支的同一文件,解决步骤:
git checkout feature/20251209-新增登录功能
git pull origin dev # 拉取 dev 最新代码,此时会提示 Automatic merge failed; fix conflicts and then commit the result.
打开冲突文件:文件里会有 <<<<<<< HEAD(dev 分支的代码)、=======(你的代码)、>>>>>>> feature/xxx 标记,手动删除标记并保留正确代码;
解决后重新提交并推送:
git add 冲突文件名
git commit -m "fix: 解决 dev 分支代码冲突"
git push origin feature/20251209-新增登录功能
解决步骤:
git stash # 把当前修改暂存起来,工作区恢复到干净状态
git checkout feature/20251209-新增登录功能
git stash pop # 恢复暂存的修改到当前分支
# 先查看提交记录,找到错误提交前的 ID(比如 abc123)
git log --oneline
# 回滚到错误提交前的版本(--hard 表示彻底回滚,慎用!)
git reset --hard abc123
# 推送到远程 dev 分支(需要权限,一般找 leader 确认)
git push origin dev --force
# 撤销指定文件的暂存
git reset HEAD 错误文件名
# 撤销所有暂存的文件
git reset HEAD .
| 命令 | 作用 | 新手使用场景 |
| git clone 地址 | 克隆远程仓库到本地 | 第一次获取项目代码 |
| git checkout 分支名 | 切换分支 | 切到 dev 分支 / 自己的功能分支 |
| git checkout -b 新分支 | 新建并切换分支 | 从 dev 分支新建自己的功能分支 |
| git pull origin 分支名 | 拉取远程分支最新代码 | 开发前同步同事的修改 |
| git status | 查看本地代码状态 | 每次提交前确认修改内容 |
| git add 文件名/. | 暂存修改的文件 | 准备提交前把修改加入暂存区 |
| git commit -m "描述" | 提交暂存区到本地仓库 | 完成一段开发后保存修改 |
| git push origin 分支名 | 推送本地分支到远程 | 把自己的代码上传到 GitLab 提 MR |
| git branch | 查看本地分支 | 确认当前在哪个分支 |
| git branch -d 分支名 | 删除本地分支 | 合并后清理无用分支 |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online