Python在金融中的应用 · 第一部分

第四节:Git、GitHub与Gitee学习资源

金融数据分析需要不断修改代码、调整变量、保存结果。如果没有版本控制,Notebook 很快会变成“final、final2、真的final”的混乱文件。本节学习 Git 的最低必要知识,并学会在 GitHub 和 Gitee 上寻找可靠资源。

1. 为什么要学 Git

Git 的核心作用是记录修改历史。它不只是给代码用,也可以管理 Notebook、论文草稿、课程讲义、数据说明和图表脚本。只要一个项目会反复修改、需要回看过程、需要多人协作,就值得使用版本控制。

Git 管理代码、论文、课程资料和团队协作的修改历史
Git:管理修改历史,而不是简单同步文件

不用 Git

文件名越来越乱,例如 final.ipynb、final2.ipynb、最终版真的最终版.ipynb。改错后不知道怎样恢复;别人也很难知道分析过程从哪里来。

使用 Git

每次重要修改都有记录,可以查看差异、回到旧版本,也能同步到 GitHub、Gitee、学院服务器或局域网共享仓库。Git 本身免费、开源、跨平台。

可以把 Git 理解成“给项目拍一张有说明的快照”。网盘通常保存“当前文件”,Git 保存“文件怎样一步步变成现在这样”。

2. Git 可以在本地、局域网和云端协作

Git 是分布式版本控制。每个同学电脑上的仓库都有一份完整历史;远程仓库只是大家共同交换版本的地方。远程仓库可以是 GitHub/Gitee,也可以是学院服务器、实验室电脑、NAS 或同一局域网里的共享目录。

局域网 Git 协作仓库示意
局域网 Git:不一定依赖公网平台,也可以在本地搭建协作点

局域网 bare repository

bare repository 可以理解成“只用来收发版本的仓库”。它没有普通工作区,不直接打开 Notebook 编辑,适合作为同学之间的公共协作点。

# 在共享电脑或服务器上创建公共仓库
mkdir -p /srv/git
cd /srv/git
git init --bare python-finance.git

# 同学电脑上克隆
git clone ssh://student@192.168.1.20/srv/git/python-finance.git

本地共享目录也可以作为 remote

如果几位同学都能访问同一个共享目录,可以把这个目录作为远程仓库。它适合课堂演示或小组内网协作,但要注意权限和备份。

# 把共享仓库加入为一个远程地址
git remote add lan /Volumes/course-git/python-finance.git
git pull lan main
git push lan main

局域网仓库不等于数据安全系统。真实个人信息、客户数据、API Key、数据库密码仍然不能放进仓库。Git 负责版本历史,不负责替你判断哪些数据可以公开。

3. Git 已经嵌入到很多工具里

很多 IDE、Notebook 平台、智能体和代码托管平台都在使用 Git 的能力。Trae、VS Code、PyCharm、GitHub Desktop、GitHub 网页、Gitee 网页、许多 AI 编程智能体,都可以读取 Git 状态、展示文件差异、提交 commit、推送分支,甚至发起 PR。

IDE

可以在侧边栏看到哪些文件被修改,点击按钮完成 stage、commit、push。

智能体

智能体通常会先查看 Git diff,再决定如何修改文件;也可以帮助生成 PR 描述。

Pull Request

PR 是把一组修改提交给团队审阅的方式。很多 IDE 和智能体都能辅助创建、解释和修改 PR。

即使以后主要用图形界面或 AI 工具,也要理解 Git 的基本动作。因为工具按钮背后仍然是在做 add、commit、pull、push 和 PR。

4. 先理解几个动作

动作简单理解课程例子
工作区正在编辑的文件。正在修改的 `.ipynb`、数据说明、图片。
暂存 stage / add挑选这次要记录的文件。选择刚完成的小微信贷 Notebook。
提交 commit把这次修改保存成一个版本。提交信息写“完成小微信贷预期收益计算”。
拉取 pull先把远程的新修改拿到本地。同学已经更新了数据说明,先同步下来。
推送 push同步到远程仓库。上传到 GitHub 或 Gitee,便于备份和分享。
  1. 查看状态。先看哪些文件被修改、哪些文件还没有被 Git 跟踪。不要盲目提交整个文件夹。
    git status
  2. 暂存文件。add 不是“上传”,而是把文件放入本次提交的候选清单。
    git add notebooks/04-git-resources.ipynb
    git add README.md
  3. 再次检查。确认将要提交的文件没有包含真实数据、密码、临时输出。
    git status
    git diff --cached
  4. 提交快照。commit 是把暂存区保存成本地历史中的一个版本。
    git commit -m "完成 Git 基本操作说明"
  5. 拉取远程更新。多人协作时,先拿到别人已经推送的修改,避免直接覆盖或制造冲突。
    git pull origin main
  6. 推送到远程。push 才是把本地提交发到 GitHub、Gitee 或局域网仓库。
    git push origin main

提交信息不要只写 “update”。好的提交信息应该说明完成了什么内容,便于以后回看。

5. 课程项目应该怎样组织

python-finance-course/
├── notebooks/
│   ├── 01-python-ai.ipynb
│   ├── 02-ide-notebook.ipynb
│   └── 03-environment.ipynb
├── data/
│   └── README.md
├── outputs/
│   └── figures/
├── requirements.txt
├── .gitignore
└── README.md

建议把 Notebook、数据说明、输出图表分开放。真实敏感数据、账号密码、大型临时文件不应该提交到公开仓库。

# .gitignore 示例
.venv/
__pycache__/
.env
*.csv
*.xlsx
outputs/temp/

如果数据涉及个人信息、客户信息、银行流水或真实企业经营数据,不要上传到公开 GitHub / Gitee 仓库。课程练习尽量使用合成数据或脱敏数据。

6. GitHub / Gitee:申请账号并上传第一个仓库

GitHub 更国际化,很多开源项目和 AI 工具都在上面;Gitee 在国内访问更稳定,也适合课程、实验室和小组项目。两者基本流程相似:注册账号,新建仓库,复制仓库地址,本地 clone,修改文件,add、commit、push。

第一个 GitHub 或 Gitee 仓库流程
从网页新建仓库,到本地 clone、commit、push

GitHub 账号与仓库

  1. 打开 github.com/signup 注册账号。
  2. 登录后打开 github.com/new,填写仓库名,例如 python-finance-course。
  3. 建议勾选 README,初学阶段先选 Private;准备展示作品时再考虑 Public。
  4. 进入仓库页面,点击 Code,复制 HTTPS 地址。

Gitee 账号与仓库

  1. 打开 gitee.com 注册或登录账号。
  2. 右上角选择“新建仓库”,填写仓库名、简介、开源或私有。
  3. 进入仓库页面,点击“克隆/下载”,复制 HTTPS 或 SSH 地址。
  4. 如果推送失败,优先检查账号认证、SSH 公钥或密码/令牌设置。
# 第一次把远程仓库复制到电脑
git clone https://github.com/your-name/python-finance-course.git
cd python-finance-course

# 修改 README 后提交并上传
git status
git add README.md
git commit -m "添加课程项目说明"
git push origin main

如果远程仓库默认分支叫 master,就把命令里的 main 换成 master。不要为了“统一”强行修改不理解的分支设置。

7. 在 GitHub 和 Gitee 上寻找学习资源

GitHub 和 Gitee 不只是上传作业的地方,也是寻找学习资源的地方。关键是会判断资源是否可靠,而不是看到代码就复制。

在 GitHub 和 Gitee 上寻找学习资源
在 GitHub 和 Gitee 上寻找学习资源

可以搜索的关键词

  • python finance
  • pandas tutorial
  • quantitative finance python
  • financial data analysis
  • 普惠金融 数据分析

先看这些信息

  • README 是否清楚说明项目目的。
  • 是否给出安装和运行步骤。
  • 数据来源是否说明。
  • 最近更新时间是否太久远。
  • 许可证是否允许学习和改写。

搜索到项目后,先读 README,再看示例数据和许可证。课程中可以学习思路和结构,但不能把别人的作业或项目直接改名提交。

8. 重要厂商和开源项目为什么都在 GitHub

GitHub 是观察真实工程协作的窗口。很多大厂会把 SDK、模型工具、框架源码、文档示例放在 GitHub 上,issue 和 PR 里还能看到真实问题是怎样被讨论、修复和审阅的。

大厂和重要开源项目的 GitHub 仓库
重要开源项目的仓库入口

Google

Google 开源项目入口,适合观察工程项目组织方式。

github.com/google

9. 学习别人的代码时怎么做

  1. 先运行原项目。确认它能跑通,再谈理解和修改。
  2. 再改成小例子。把复杂代码缩小成一个自己能解释的最小版本。
  3. 替换成金融场景。例如把普通分类数据改成小微信贷风险、把普通趋势图改成普惠金融指数趋势。
  4. 注明来源。如果参考了别人的项目、代码结构或图表风格,要在 README 或 Notebook 中写清楚。

真正的学习不是复制仓库,而是把别人的思路转化成自己能解释、能运行、能改写的金融分析流程。

10. 本节练习

练习 A:写提交信息

把 “update” 改写成三条更好的提交信息,分别对应完成数据读取、完成图表绘制、完成结果解释。

练习 B:设计 .gitignore

为课程项目写一个 `.gitignore`,说明为什么 `.venv`、`.env` 和真实数据文件不应该提交。

练习 C:完成第一次 push

新建一个私有仓库,添加 README,完成 clone、add、commit、push,并截图记录网页上的提交历史。

练习 D:搜索资源

在 GitHub 或 Gitee 搜索一个 Python 金融数据分析项目,记录它的 README、数据来源、更新时间和许可证。

练习 E:改写案例

选择一个简单项目,把它改写成小微信贷或普惠金融指数相关的小例子,并说明你改了什么。

练习 F:解释 PR

用自己的话解释 PR 为什么适合小组作业:谁提出修改,谁审阅,谁合并,冲突时如何讨论。