Git快速上手记录
摘要: 本文为研一新生提供GitLab快速上手指南,重点介绍5个核心Git命令(clone、pull、add、commit、push)和团队协作规范。强调SSH Key配置、分支管理(避免直接修改main分支)、Merge Request流程及冲突解决方法(推荐VS Code工具)。特别提醒不要上传大文件和Jupyter Notebook输出内容,建议使用.gitignore文件管理忽略项。通过&
研一新生生存指南:如何在实验室愉快地使用 GitLab
欢迎来到研究生的世界!刚进实验室,师兄师姐可能会丢给你一个 GitLab 地址,让你“把代码拉下来跑一下”。别慌,这篇指南经过本人的实践,可以帮大家快速上手,避免踩坑,从“代码小白”平滑过渡到“科研合作者”。
不需要背复杂的命令,不需要懂底层原理,我只讲每天都会用到的操作。
1. 第一步:配好钥匙 (SSH Key)
进实验室要刷卡,进 GitLab 也要刷卡。但我们不推荐用账号密码(太麻烦且不安全),而是用 SSH Key。它就像你电脑的“电子指纹”,配好之后,以后推送代码都不用输密码。
傻瓜式配置三步走:
-
生成钥匙:
打开你的终端(Windows 用户请打开 Git Bash),输入下面这行命令,然后一路狂按回车(不需要设密码):
Bash
ssh-keygen -t ed25519 -C “你的学校邮箱@edu.cn”解释:我们用的是 ed25519 算法,比老的 RSA 更快更短。 1
-
复制公钥:
继续在终端输入命令,把生成的公钥内容复制到剪贴板:- Windows (Git Bash): cat ~/.ssh/id_ed25519.pub | clip
- Mac: pbcopy < ~/.ssh/id_ed25519.pub
- Linux: cat ~/.ssh/id_ed25519.pub (然后手动选中复制)
-
粘贴到 GitLab:
登录实验室的 GitLab 网页,点击右上角头像 -> Preferences (或 Settings) -> SSH Keys。
把刚才复制的一长串字符粘贴到 “Key” 的框里,点击 “Add key”。搞定!
2. 只有这 5 个命令是必须背的
做科研不像做软件开发那么复杂,记住这 5 个命令,能覆盖你 90% 的工作场景。
把 Git 想象成一个游戏存档系统:
- git clone <地址>:下载游戏。
- 刚开始项目时用一次,把远程代码下载到你本地。
- 例子:git clone git@gitlab.lab.edu:group/project.git
- git pull:同步存档。
- 每次开始干活前,先运行一下,把师兄师姐更新的代码拉下来,防止冲突。
- git add.:挑选要保存的装备。
- 告诉 Git 你想保存哪些文件的修改。. 代表“当前目录下的所有文件”。
- git commit -m “写清楚你干了什么”:确认存档。
- 这步是真正的保存。双引号里一定要写人话!
- 错误示范: “update”
- 正确示范: “修复了数据加载的bug” 或 “增加了Transformer层”
- git push:上传存档到云端。
- 把你的修改推送到 GitLab 服务器,这样导师就能看到了。
3. 实验室合作的“潜规则”:分支与 Merge Request
在本科自己写作业时,你可能一直都在 master 或 main 分支上改代码。但在实验室,绝对不要直接推送到 main 分支! main 分支是神圣的,存放的是“肯定能跑通”的代码。
正确的合作姿势:
-
开小号(新建分支):
每当你要做一个新实验或者改个功能,先切一个新的分支:
Bash
git checkout -b feature/new-experiment在这个分支上,你随便怎么改都行,炸了也不影响主分支。 3
-
提交请求(Merge Request / MR):
当你在分支上改完代码并 push 后,GitLab 页面上会出现一个大大的 “Create Merge Request” 按钮。- 点击它,写清楚你改了什么。
- Assignee 选你自己,Reviewer 选带你的师兄或导师。
- 这就像提交一份“作业”,让他们检查(Code Review)一下,没问题了再合并进去。
4. 遇到“冲突”怎么办?(救命指南)
当你和师兄同时改了同一个文件的同一行代码,Git 就会懵圈,报 Merge Conflict。
千万别慌,也别去手动删那些 <<<< 符号。
推荐工具:VS Code
- 用 VS Code 打开冲突的文件。
- 你会看到冲突的地方被高亮了,上面有几个按钮:
- Accept Current Change:保留你的修改。
- Accept Incoming Change:保留师兄的修改。
- Accept Both Changes:两个都留着。
- 点一下按钮,冲突就解除了,然后保存文件,重新 add 和 commit 即可。
5. 研一新生的两个“不要”
5.1 不要上传大数据集
Git 是用来管代码的,不是网盘!
- 原则:超过 100MB 的文件(比如 .pth 模型权重、ImageNet 数据集)严禁上传到 Git。
- 后果:会让仓库变得巨大无比,所有人拉代码都卡死。
- 解决:数据放实验室服务器的硬盘里,代码里写路径去读取。或者用 .gitignore 文件把 data/ 文件夹忽略掉。
5.2 不要直接上传 Jupyter Notebook (.ipynb)
Notebook 很好用,但它也是 Git 的噩梦。因为你稍微重新运行一下,里面的输出图片和行号就会变,Git 会认为整个文件都变了。
- 解决:在提交前,手动点一下 Clear All Output。
- 进阶:如果你嫌麻烦,可以装一个叫 nbstripout 的小工具,它会自动帮你清理输出。
6. 最后的建议:.gitignore 是你的好朋友
在项目根目录下创建一个名为 .gitignore 的文件,把不需要上传的东西列进去。这能让你看起来很专业。
一个标准的 Python 科研项目 .gitignore 模板:
忽略 Python 编译文件
pycache/
*.pyc
忽略数据集和模型权重
data/
checkpoints/
*.pth
*.ckpt
忽略 IDE 配置文件
.vscode/
.idea/
忽略系统文件
.DS_Store
总结:每天开工 git pull,干活在分支 checkout -b,改完 add + commit,下班前 push 并提个 MR。保持这个节奏,任务就已经成功了一半!
更多推荐


所有评论(0)