Git 日常开发与团队培训手册
面向:迁仓后的日常开发,以及给同事做 Git 入门培训。
CI/CD 本册不展开,可后续另文。
阅读约定:命令块可直接复制;以 # 开头的是注释。
0. 先记住三条规矩
- 优先直连 GitLab URL;只有本机
git报 400 时,才开本机 HTTP 代理或 SSH 隧道。 - 不要往
main上直接推日常改动(main已保护):feature/xxx→ 推送 → 网页 MR → 合并。 - 提交信息写清「为什么改」,方便后人查历史。
checkout main
+ pull
+ pull
→
feature/任务
→
add / commit
→
push
▼
网页提 MR
→
Review
→
Merge
→
再 pull main
部分 Windows 安全软件会改写直连 80/22 的流量(HTTP 400、SSH 首包异常),而浏览器/PuTTY/
curl往往正常。同事先试直连;失败再上代理/隧道。
1. 环境准备(每人一次)
bat
git --version
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@公司.com"
git config --global -l选路
| 路径 | 何时用 |
|---|---|
| A. HTTP 直连 | git ls-remote http://<HOST>/...git 成功 |
| B. 本机 HTTP 代理 | 直连 400:开代理 bat,设 http.proxy,仍用真实 URL |
| C. SSH 隧道 | 开 SSH 隧道 bat,用 git@gitlab-local:... 或 ssh://git@127.0.0.1:端口/... |
HTTP 需要 PAT:Preferences → Access Tokens(read_repository + write_repository)。
提示 Username 填 oauth2,Password 填 PAT(不是登录密码)。SSH 一般不用 PAT。
2. 分支与角色
| 分支 | 谁推 | 用途 |
|---|---|---|
main | 一般不直接推 | 稳定主线,靠 MR 合入 |
feature/<简述> | Developer | 日常功能 / 修 bug |
release/*、Tag v* | Maintainer | 发布(培训可先不练) |
命名示例:feature/fix-uart-dma、feature/IS-2331-refill。
3. 完整实操(建议跟做一遍)
A~E · 本地
bat
git clone <仓库URL>
cd <仓库目录>
git checkout main
git pull origin main
git checkout -b feature/train-smoke-001
REM 改一点点文件后
git add -A
git commit -m "chore: 培训冒烟 - 验证 clone/分支/提交流程"
git push -u origin feature/train-smoke-001若提示没有
git restore,用经典git reset HEAD -- 文件/git checkout -- 文件。建议 Git ≥ 2.23。
F · 提 Merge Request(网页)
- Source = 你的
feature/*,Target =main(方向反了会审错) - Title:
类型: 一句话目的(feat/fix/chore/docs/refactor) - Description 建议含:背景、改动说明、测试勾选、风险、关联 Issue
- 建议勾选:合并后删除源分支
若提示 “contains no changes”:说明 feature 与 main 同一提交——本地补 commit + git push,不必关 MR。
审阅与打回
作者 push → 提 MR
↓
审阅人看 Changes 行评 / Overview 总评
↓
┌─ 有问题 → 保持 Open → 作者同分支改完再 push → 再审
└─ 通过 → Maintainer 点 Merge → Merged
↓
作者:checkout main → pull → 删本地 feature打回 ≠ 关闭 MR。不要为改意见再开一条重复业务 MR。
G~H · 合并后同步
bat
git checkout main
git pull origin main
git branch -d feature/train-smoke-0014. 第二次及以后(最短路径)
bat
git checkout main
git pull origin main
git checkout -b feature/下一项任务简述
REM ……改代码……
git add -A
git status
git commit -m "fix: 一句话说明本次目的"
git push -u origin HEAD
REM 网页提 MR → 合并后再 checkout main && pull5. 提交信息与课堂提纲
格式:类型: 说明(可跟 Issue 号)
| 45~60 分钟课堂 | 内容 |
|---|---|
| 10 min | 三条规矩 + 选路 + PAT |
| 15 min | 每人 clone,看 log/status |
| 15 min | 建 feature/train-姓名,commit,push |
| 10 min | 提 MR;演示 Merge;互相 Review |
| 5 min | 拉回 main,删分支;答疑 |
每人验收:会 clone、建 feature、commit/push、提 MR、合后 pull;知道不要直推 main、不要对保护分支 force push。
6. 常见问题
| 现象 | 处理 |
|---|---|
| HTTP 400 | 本机代理或改走 SSH 隧道 |
ssh git@HOST 立刻断开 | 勿直连;走隧道别名 |
protected branch | 改推 feature/* 再 MR |
| non-fast-forward | 先 pull 再 push;勿随意 --force |
| 同事直连正常、你不行 | 多半是本机安全软件,不是仓库坏了 |
7. 一页纸口令
text
【选路】先试 HTTP 直连;失败再代理 / SSH 隧道
【日常】
git checkout main && git pull
git checkout -b feature/任务简述
git add -A && git commit -m "类型: 说明"
git push -u origin HEAD
→ 网页提 MR → 合入 main
→ git checkout main && git pull附件 · Cursor Skills 与系列文
迁仓与部署相关 Skill 可下载:
| 附件 | 说明 |
|---|---|
| gitlab-local-skills.zip | 服务器部署 Skills |
| svn-to-git-skills.zip | SVN 迁移 Skills |
| Skills索引.md | 全索引 |
系列博文:配置指南 → 命令手册 → SVN 迁移 → 本文(日常/培训)。