Git 基本操作与 GitHub 仓库初始化笔记
Git 基本操作与 GitHub 仓库初始化笔记
1. Git 是什么?
Git 是一个代码版本管理工具,可以帮我们记录项目的每一次修改。
简单理解:
Git = 项目的代码存档系统
它可以做到:
- 保存代码历史版本
- 查看代码改了什么
- 回退到之前的版本
- 管理分支
- 把本地项目上传到 GitHub
- 多人协作开发
2. 本地项目第一次使用 Git
假设项目路径是:
D:\workspace\code\project\edu_ai_project\正确仓库名称
进入项目目录:
cd D:\workspace\code\project\edu_ai_project\正确仓库名称
初始化 Git:
git init
成功后会看到类似:
Initialized empty Git repository in D:/workspace/code/project/edu_ai_project/正确仓库名称/.git/
这说明当前目录已经变成一个 Git 仓库。
Git 会在项目根目录创建一个隐藏文件夹:
.git/
这个 .git/ 文件夹用来保存 Git 的版本记录,不要手动删除。
3. 创建 .gitignore 文件
.gitignore 用来告诉 Git:哪些文件或文件夹不要提交。
Python 项目里,最重要的是:
.venv/ 不要提交
.env 不要提交
__pycache__/ 不要提交
数据库文件不要提交
日志文件不要提交
3.1 Windows PowerShell 创建 .gitignore
在项目根目录执行:
$content = @'
.venv/
__pycache__/
*.pyc
*.pyo
*.pyd
.pytest_cache/
.mypy_cache/
.ruff_cache/
.env
*.db
wit_edu_agent.db
uploads/
logs/
.vscode/
.idea/
.DS_Store
Thumbs.db
'@
$Utf8NoBom = New-Object System.Text.UTF8Encoding $false
[System.IO.File]::WriteAllText((Join-Path (Get-Location) ".gitignore"), $content, $Utf8NoBom)
然后查看内容:
Get-Content .gitignore
注意:
如果用 Windows PowerShell 5.1,下面这个命令可能会报错:
Set-Content .gitignore -Encoding utf8NoBOM
因为旧版 PowerShell 不支持 utf8NoBOM 这个参数。
4. 查看 Git 当前状态
git status
这个命令非常常用。
它会告诉你:
- 哪些文件还没有被 Git 管理
- 哪些文件被修改了
- 哪些文件已经加入暂存区
- 当前在哪个分支
5. 把文件加入暂存区
添加所有文件:
git add .
只添加某个文件:
git add requirements.txt
只添加某个目录:
git add app
解释:
git add . 表示把当前目录下所有没有被 .gitignore 忽略的改动加入暂存区
6. 第一次提交代码
git commit -m "初始化教育智能体项目结构"
-m 后面是提交说明。
提交说明建议写清楚这次做了什么,例如:
git commit -m "初始化项目结构"
git commit -m "添加 FastAPI 基础配置"
git commit -m "添加用户模型和数据库连接"
git commit -m "修复依赖安装问题"
7. Git 的三个区域
Git 里可以粗略理解成三个区域:
工作区 你正在修改代码的地方
暂存区 git add 之后进入的地方
版本库 git commit 之后真正保存的地方
流程是:
修改代码 → git add . → git commit -m "说明"
8. 日常开发最常用流程
每次写完一小块功能后:
git status
git add .
git commit -m "本次修改说明"
如果已经绑定远程 GitHub 仓库,还可以继续:
git push
完整日常流程:
git status
git add .
git commit -m "完成某某功能"
git push
9. 在 GitHub 上创建新仓库
9.1 打开 GitHub
浏览器打开:
https://github.com
登录自己的账号。
9.2 创建仓库
点击右上角:
+ 号 → New repository
9.3 GitHub 创建仓库时各个名字怎么填
假设本地项目叫:
正确仓库名称
那么 GitHub 页面可以这样填写:
Repository name
仓库名。
建议和本地项目文件夹保持一致:
正确仓库名称
命名建议:
全部小写
单词之间用 -
不要用中文
不要用空格
不要用特殊符号
推荐:
正确仓库名称
edu-ai-agent
stock-system
ironpillar-quant
fastapi-backend
不推荐:
我的教育智能体
wit edu agent
WIT_EDU_AGENT
project!!!
Description
仓库描述。
可以写一句简短说明,例如:
A FastAPI-based educational AI agent project.
或者中文也可以:
基于 FastAPI 的教育智能体项目
这个不是必填项。
Public / Private
选择仓库可见性。
如果是个人学习项目,可以选:
Public
如果暂时不想让别人看到,选:
Private
建议课程项目、实验项目、含 API Key 风险的项目先选:
Private
注意:
.env 文件不要上传,即使是 Private 仓库也不要上传密钥。
Add a README file
如果本地项目已经有文件,并且准备从本地推送,建议:
不要勾选 Add a README file
原因:
如果 GitHub 远程仓库先生成了 README,而本地也有自己的提交,第一次 push 时容易出现远程和本地历史不一致。
新手建议:
本地已有项目 → GitHub 创建空仓库 → 不勾选 README
Add .gitignore
如果本地已经手动创建 .gitignore,建议:
不要选择
保持 GitHub 仓库是空的。
Choose a license
学习项目可以先不选:
None
以后需要开源时再补。
9.4 推荐的 GitHub 新仓库填写方式
以 正确仓库名称 为例:
Repository name: 正确仓库名称
Description: 基于 FastAPI 的教育智能体项目
Visibility: Private 或 Public
Add a README file: 不勾选
Add .gitignore: 不选
Choose a license: None
然后点击:
Create repository
10. 本地仓库绑定 GitHub 远程地址
GitHub 仓库创建完成后,会给你一个远程地址。
HTTPS 格式一般是:
https://github.com/你的用户名/仓库名.git
例如:
https://github.com/你的用户名/正确仓库名称.git
在本地项目终端执行:
git remote add origin https://github.com/你的用户名/正确仓库名称.git
解释:
origin 是远程仓库的默认名字
https://github.com/你的用户名/正确仓库名称.git 是 GitHub 仓库地址
查看是否绑定成功:
git remote -v
正常会看到:
origin https://github.com/你的用户名/正确仓库名称.git (fetch)
origin https://github.com/你的用户名/正确仓库名称.git (push)
11. 第一次推送到 GitHub
先把当前分支改名为 main:
git branch -M main
然后第一次推送:
git push -u origin main
解释:
git push 把本地提交推送到远程仓库
-u 建立本地 main 和远程 main 的追踪关系
origin 远程仓库名字
main 分支名
第一次用了 -u 之后,以后再推送只需要:
git push
12. 新项目从零到上传 GitHub 的完整流程
假设当前已经在项目根目录:
cd D:\workspace\code\project\edu_ai_project\正确仓库名称
完整流程:
git init
# 创建 .gitignore
$content = @'
.venv/
__pycache__/
*.pyc
*.pyo
*.pyd
.pytest_cache/
.mypy_cache/
.ruff_cache/
.env
*.db
wit_edu_agent.db
uploads/
logs/
.vscode/
.idea/
.DS_Store
Thumbs.db
'@
$Utf8NoBom = New-Object System.Text.UTF8Encoding $false
[System.IO.File]::WriteAllText((Join-Path (Get-Location) ".gitignore"), $content, $Utf8NoBom)
git status
git add .
git commit -m "初始化教育智能体项目结构"
git branch -M main
git remote add origin https://github.com/你的用户名/正确仓库名称.git
git push -u origin main
注意:
上面的远程地址要换成你自己的 GitHub 仓库地址。
13. 如果远程地址填错了怎么办?
先查看当前远程地址:
git remote -v
如果地址错了,修改:
git remote set-url origin https://github.com/你的用户名/正确仓库名.git
例如:
git remote set-url origin https://github.com/你的用户名/正确仓库名称.git
再次查看:
git remote -v
14. 如果重复添加 origin 报错怎么办?
如果执行:
git remote add origin 地址
报错类似:
remote origin already exists
说明已经有一个叫 origin 的远程仓库了。
解决方法一:修改已有 origin:
git remote set-url origin 新地址
解决方法二:删除后重新添加:
git remote remove origin
git remote add origin 新地址
推荐使用方法一。
15. 如果 push 时连不上 GitHub
如果执行:
git push
报错类似:
Failed to connect to github.com port 443
Couldn't connect to server
这不是代码问题,也不是 venv 问题,而是网络连接 GitHub 失败。
常见原因:
浏览器能走代理,但 Git 命令行没走代理
网络无法直连 GitHub
Git 配置了错误代理
15.1 查看远程地址
git remote -v
15.2 测试能否访问 GitHub
PowerShell / Git Bash / macOS 终端:
curl -I https://github.com
15.3 查看 Git 是否配置代理
git config --global --get http.proxy
git config --global --get https.proxy
15.4 如果你开了代理,例如 Clash 端口是 7890
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
然后重新:
git push
15.5 如果你没开代理,但 Git 配过代理
取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
然后重新:
git push
16. HTTPS 和 SSH 两种远程地址
GitHub 远程地址常见两种。
16.1 HTTPS 地址
格式:
https://github.com/用户名/仓库名.git
例如:
https://github.com/你的用户名/正确仓库名称.git
优点:
简单直观
适合新手
缺点:
可能需要 GitHub Token
网络代理问题比较常见
16.2 SSH 地址
格式:
git@github.com:用户名/仓库名.git
例如:
git@github.com:你的用户名/正确仓库名称.git
优点:
配置好 SSH Key 后推送方便
不用每次处理 HTTPS 登录
缺点:
第一次配置 SSH Key 稍微麻烦
修改为 SSH:
git remote set-url origin git@github.com:你的用户名/正确仓库名称.git
测试 SSH:
ssh -T git@github.com
推送:
git push
17. 查看提交历史
完整查看:
git log
简洁查看:
git log --oneline
输出类似:
a1b2c3d 初始化教育智能体项目结构
18. 查看代码改动
查看工作区改了什么:
git diff
查看暂存区改了什么:
git diff --cached
19. 分支基本操作
查看分支:
git branch
创建分支:
git branch dev
切换分支:
git switch dev
创建并切换分支:
git switch -c dev
切回 main:
git switch main
合并 dev 到 main:
git switch main
git merge dev
20. 克隆已有 GitHub 项目
如果远程仓库已经存在,本地还没有项目,可以用:
git clone https://github.com/用户名/仓库名.git
例如:
git clone https://github.com/你的用户名/正确仓库名称.git
克隆后进入目录:
cd 正确仓库名称
21. 拉取远程最新代码
git pull
常见场景:
别人在 GitHub 上更新了代码
你在另一台电脑提交了代码
你想把远程最新内容同步到本地
22. Windows PowerShell 和 Linux 命令区别
在网上经常看到:
mkdir -p app/core app/db app/models
这是 Linux / macOS / Git Bash 写法。
在 Windows PowerShell 里应该写:
New-Item -ItemType Directory -Force -Path app/core, app/db, app/models
例如创建项目目录:
New-Item -ItemType Directory -Force -Path app/core, app/db, app/models, app/schemas, app/services, app/agents, app/tools, app/utils, app/prompts/zh, tests
查看目录树:
tree app /F
23. Python 项目里 Git 提交注意事项
不要提交:
.venv/
.env
__pycache__/
*.pyc
*.db
logs/
uploads/
应该提交:
app/
tests/
requirements.txt
.gitignore
README.md
pyproject.toml
特别重要:
.venv 不提交
requirements.txt 要提交
.env 不提交
.env.example 可以提交
24. requirements.txt 和 Git 的关系
requirements.txt 要提交到 Git。
生成依赖文件:
python -m pip freeze > requirements.txt
别人拿到项目后安装依赖:
python -m pip install -r requirements.txt
25. 推荐的新项目 Git 初始化模板
25.1 本地已有项目,准备上传 GitHub
cd 项目路径
git init
# 写 .gitignore
# 确保 .venv、.env、缓存、数据库、日志都被忽略
git status
git add .
git commit -m "初始化项目"
git branch -M main
git remote add origin https://github.com/你的用户名/仓库名.git
git push -u origin main
25.2 已经有远程仓库,准备下载到本地
cd 你想放项目的目录
git clone https://github.com/你的用户名/仓库名.git
cd 仓库名
26. 教育智能体项目参考流程
项目名:
正确仓库名称
本地路径:
D:\workspace\code\project\edu_ai_project\正确仓库名称
GitHub 仓库名:
正确仓库名称
GitHub 描述:
基于 FastAPI 的教育智能体项目
本地命令:
cd D:\workspace\code\project\edu_ai_project\正确仓库名称
git init
git status
git add .
git commit -m "初始化教育智能体项目结构"
git branch -M main
git remote add origin https://github.com/你的用户名/正确仓库名称.git
git push -u origin main
之后每次开发:
git status
git add .
git commit -m "说明这次修改了什么"
git push
27. 常见错误速查
27.1 git init 后看到 Initialized empty Git repository
说明初始化成功。
27.2 git remote add origin 报 remote origin already exists
说明已经绑定过远程仓库。
解决:
git remote set-url origin 新仓库地址
27.3 git push 失败,提示 Failed to connect to github.com port 443
说明网络连不上 GitHub。
可能要配置代理:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
或者取消错误代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
27.4 .venv 出现在 git status 里
说明 .gitignore 没生效,或者 .venv 已经被加入暂存区。
先确认 .gitignore 有:
.venv/
如果已经被 add 过,执行:
git rm -r --cached .venv
然后:
git add .
git status
28. 最终记忆版
最常用的 Git 命令只需要先记住这几个:
git init
git status
git add .
git commit -m "提交说明"
git branch -M main
git remote add origin GitHub仓库地址
git push -u origin main
git push
git pull
git log --oneline
日常开发三连:
git add .
git commit -m "说明"
git push
新项目上传 GitHub 五连:
git init
git add .
git commit -m "初始化项目"
git remote add origin https://github.com/用户名/仓库名.git
git push -u origin main