A2. 项目规划与版本控制

一个清晰的项目结构和基本的版本控制习惯,能让你的分析代码可复现、可备份、可分享。本章的核心思路是:先和 AI 讨论结构设计,确认后再让 AI 生成代码框架

A2.1 项目结构设计

A2.1.1 推荐的项目结构

金融数据分析项目建议采用以下标准结构:

fin_project/
├── data/
│   ├── raw/          # 原始数据,永远不修改
│   └── processed/    # 清洗后的数据
├── notebooks/        # Jupyter Notebook(探索性分析)
├── scripts/          # 可复用的 Python 脚本
├── outputs/
│   ├── figures/      # 图形输出(PDF/PNG)
│   └── tables/       # 表格输出(CSV/Excel)
├── environment.yml   # 环境配置(供他人复现)
└── README.md         # 项目说明
提示词(第一轮):与 AI 讨论项目结构

对于一个新项目,先描述你的任务背景,让 AI 推荐合适的结构,再做调整。这比直接套用模板更符合你的实际需求。

我正在启动一个 Python 数据分析项目,任务是:
「用事件研究法分析上市公司并购公告对 A 股股价的短期影响」。

数据来源:Wind 金融终端,包括日度股票行情数据和并购事件列表。
分析工具:pandas、statsmodels、matplotlib。
运行环境:VS Code + Jupyter Notebook,Windows 11,Anaconda。

请帮我:
1. 设计一个合理的项目文件夹结构,说明每个文件夹的用途
2. 推荐主要脚本文件的命名和分工
   (数据下载、数据清洗、建模分析、结果绘图各自独立成文件)
3. 解释为什么不能直接修改 data/raw/ 中的原始数据

请用树形结构展示最终目录,并为每个文件/文件夹附一行说明。
提示词(第二轮):让 AI 生成项目初始化脚本

确认好结构后,让 AI 生成一键创建脚本,避免手动建文件夹。

请基于我们刚才讨论的项目结构,帮我写一个 Python 脚本
`setup_project.py`,在当前目录下自动创建所有文件夹,
并生成以下初始文件:

1. README.md:包含项目名称「fin_event_study」、创建日期和三行简介
2. .gitignore:忽略 data/raw/ 下的所有文件、__pycache__/、
   .ipynb_checkpoints/、.env

要求:
- 使用 Python 的 pathlib 模块
- 如果文件夹已存在则跳过(不报错)
- 代码有注释,适合在终端直接运行:python setup_project.py
脚本运行后,文件夹结构创建成功,但有以下问题:

[描述具体问题,例如:「README.md 创建了,但内容是空的」
或「.gitignore 没有被创建」]

请在上面代码的基础上修复这个问题,其余部分不变。

A2.2 Git 版本控制

Git 对金融分析学生最实用的价值只有两个:备份代码(防止误删)和记录修改历史(知道哪次改动导致了问题)。

A. 写提示词时需要知道的 Git 核心术语

术语 含义 类比
仓库(repository) 项目的所有文件 + 历史记录 项目档案室
提交(commit) 保存当前状态的快照 按下「存档」键
暂存(add) 选择哪些文件纳入本次提交 放进「待存档」区
推送(push) 将本地提交上传到 GitHub 上传到云端
拉取(pull) 将 GitHub 的更新下载到本地 从云端下载
.gitignore 告诉 Git 哪些文件不需要追踪 「不存档」清单
提示词:初始化本地项目并推送到 GitHub

适用于第一次将本地项目同步到 GitHub 的场景。

我有一个本地 Python 项目,路径为 C:/Users/zhangsan/fin_project,
想将它推送到 GitHub。

我已经安装了 Git,GitHub 账号为 zhangsan,操作系统为 Windows 11。

请帮我给出完整的操作步骤,包括:
1. 在项目根目录初始化 Git 仓库
2. 进行第一次提交,提交信息为「初始化项目」
3. 在 GitHub 上新建同名仓库的操作说明(在哪里点击)
4. 将本地仓库关联到 GitHub 远程仓库并推送

请给出每一步的完整终端命令,以及各命令的作用说明。
提示词:日常提交与同步的标准流程

每次分析工作结束后,用这组提示词保存进度。

我已经将本地项目 fin_project 关联到 GitHub 仓库。
请帮我写出「每日提交」的标准命令序列:

1. 查看哪些文件有改动
2. 将所有改动加入暂存区
3. 提交,提交信息格式为:「YYYY-MM-DD: 本次工作内容简述」
4. 推送到 GitHub 主分支

同时说明:
- 在另一台电脑上拉取最新代码的命令
- 如何查看过去 10 条提交历史

请给出可以直接在终端(Anaconda Prompt 或 Git Bash)运行的命令。
执行上面的 git push 命令时出现了以下报错:

[将报错信息完整粘贴在这里]

我使用的是 Windows 11,GitHub 账号为 zhangsan。
请帮我分析报错原因并给出修复步骤。