写给不太熟悉 Git/GitHub 的团队成员。跟着做一遍就会了。
- 下载:https://git-scm.com/download/win
- 双击安装,一路点"下一步",全部默认即可
- 安装完后,在桌面右键 → 选择 "Open Git Bash Here",输入:
看到版本号说明安装成功。
git --version
brew install git或下载:https://git-scm.com/download/mac
打开 Git Bash(或终端),设置你的名字和邮箱(用 GitHub 注册的邮箱):
git config --global user.name "你的姓名"
git config --global user.email "你的GitHub邮箱"- 确保你已被邀请为仓库协作者 — 首次使用联系李桂聿添加你的 GitHub 账号
- 打开 Git Bash,进入你想放项目的目录,比如桌面:
cd ~/Desktop
- 克隆仓库:
git clone https://github.com/programmingWTF/nuaa-map.git cd nuaa-map
现在你本地就有了一份项目代码。
永远不要在 main 分支上直接修改代码! 每次工作前创建自己的分支:
git checkout main # 先切到 main
git pull origin main # 拉取最新代码
git checkout -b 你的分支名 # 创建并切换到新分支Caution
这一步非常重要!每次开始工作前都必须执行 git pull origin main。
如果你跳过 pull、直接在旧代码上改,提交后会把别人已经合并的新代码覆盖掉,导致别人的工作白做。这是团队协作中最常见也最严重的事故。
完整流程只有三步:① pull 最新 → ② 建分支改代码 → ③ push + 交 PR。缺一不可。
| 你的组 | 分支前缀 | 示例 |
|---|---|---|
| ① 地图美工 | map/ |
map/base-layer-v2 |
| ② 交互功能 | interact/ |
interact/building-popup |
| ③ 平台搭建 | platform/ |
platform/project-init |
| ④ 数据收集 | data/ |
data/dorm-east |
| ⑤ 智能体 | ai/ |
ai/rag-setup |
| ⑥ 数据转换 | convert/ |
convert/geojson-script |
用你喜欢的编辑器(VS Code 推荐)打开项目文件夹,修改文件。
git status # 看改了哪些文件
git diff # 看具体改了什么内容git add 文件路径 # 添加单个文件
git add . # 添加所有改动(小心别把不该提交的也加了)git commit -m "<type>(<scope>): <简短描述>"提交信息格式(参考 CONTRIBUTING.md):
<类型>(<范围>): <简短描述>
类型:feat(新东西)、fix(修bug)、data(数据)、asset(图片素材)、docs(文档)
示例:
git commit -m "data(map): 添加东区宿舍信息"
git commit -m "feat(interact): 点击建筑弹出详情面板"
git commit -m "asset(map): 更新校园底图 v2"
git commit -m "fix(interact): 修复地图缩放后标记偏移问题"Tip
如果提交信息写错了,用 git commit --amend -m "新的正确信息" 修改。
git push origin 你的分支名例如:
git push origin data/dorm-east第一次 push 某个分支时可能会提示:
fatal: The current branch has no upstream branch.
复制提示里的命令执行即可:
git push --set-upstream origin data/dorm-east- 打开 https://github.com/programmingWTF/nuaa-map
- 页面顶部会看到黄色提示条 "你的分支名 had recent pushes",点击 Compare & pull request
- 如果没有提示条,点 Pull requests 标签 → New pull request
- 设置:
- base:
main(合并到哪里) - compare: 你的分支(从哪里合并)
- base:
- 填写标题和描述,说清楚做了什么
- 重要:在描述第一行写
Closes #编号(如Closes #58),合并后 GitHub 会自动关闭对应 Issue
- 重要:在描述第一行写
- 点 Create pull request
- 在群里 @ 同组的同学帮忙 Review
- 等至少一个人在你的 PR 页面点 Approve
- 如果 Review 的人提了修改意见,在本地改完后
git add→git commit→git push,PR 会自动更新 - 通过后点 Merge pull request 合并
以后每次改代码都走这个流程:
# 1. 切到 main 并拉最新
git checkout main
git pull origin main
# 2. 创建新分支
git checkout -b 你的分支名
# 3. 改代码...
# 4. 查看改动
git status
git diff
# 5. 暂存 + 提交
git add .
git commit -m "<type>(<scope>): <描述>"
# 6. 推送
git push origin 你的分支名
# 7. 去 GitHub 网页创建 PR在开始写代码之前,先看一眼 Issue 有没有被认领:
- 打开 Issue 页面,看右侧 Assignees 一栏
- 如果有人头像 → 已经有人在做了,换个 Issue 或去评论区问问还需不需要帮手
- 翻一下 Issue 评论区,看有没有人说「我来做」
- 看时间线里有没有 "linked a pull request" → 说明已经有 PR 在修了
- 在 Issues 列表里找一个没人做的 Issue(没有 Assignee 的)
- 打开 Issue,在评论区发一句「我来做这个」
- 点击右侧 Assignees → 点自己的头像 → 把自己设上去
- 开始写代码!
Caution
一定要先 Assign 再动手。 两个人同时修一个 Bug → 一个人白干。花 10 秒点个 Assign,省几十分钟。
在你创建 PR 的时候,在描述里写上:
Closes #58就这一行,合并 PR 后 GitHub 会自动帮你把 Issue 关掉。等价写法:Fixes #58、Resolves #58。多个 Issue 可以写在一起:Closes #58, closes #59。
建议放在 PR 描述的第一行,这样 Reviewer 点进 PR 能直接看到关联的 Issue。
运行第二步的身份配置命令。
说明你的 GitHub 账号没有被添加为仓库协作者,联系李桂聿添加。
说明别人在你之前 push 了新代码。先拉取再 push:
git pull origin main
git push origin 你的分支名别慌。冲突意味着你和别人改了同一个文件的同一行。
- 打开冲突文件,会看到类似这样的标记:
<<<<<<< HEAD 你的代码 ======= 别人的代码 >>>>>>> 分支名 - 手动删除标记,保留最终想要的代码
- 保存文件后:
git add . git commit -m "fix: 解决合并冲突" git push origin 你的分支名
git stash # 暂存改动
git checkout -b 新分支名 # 创建新分支
git stash pop # 恢复改动到新分支然后正常提交即可。
git commit --amend -m "正确信息"
git push --force-with-lease origin 你的分支名git checkout . # 放弃所有未暂存的改动
git clean -fd # 删除新增的未跟踪文件- VS Code:内置 Git 图形界面,左侧 Source Control 面板可以可视化操作
- GitHub Desktop:https://desktop.github.com/ — 纯图形界面,不用敲命令,适合完全不想碰命令行的同学
- GitLens(VS Code 插件):可视化每行代码是谁写的、什么时候改的
- 勤提交:不要攒几百行再提交,改完一个小功能就提交一次
- 勤 pull:每天开始工作前先
git pull,减少冲突概率 - 一个分支只做一件事:不要在一个分支里既加地图又改智能体
- 先 pull 再 push:push 前先
git pull origin main确保没有冲突 - 别 panic:Git 几乎所有操作都可以撤销,不要把整个文件夹删了重来