整体四大阶段
初始化本地仓库
编写代码 + 忽略无用文件
本地生成版本快照(add + commit)
关联远程仓库 + 推送到 GitHub
阶段 1:初始化本地 Git 仓库
命令:
git init
解释:
在当前项目文件夹内,自动生成一个隐藏文件夹 .git。
这个文件夹就是本地仓库数据库,所有版本、历史记录都存在这里。
没有这一步,Git 无法追踪文件改动。
阶段 2:编写代码 + 创建忽略文件 .gitignore
1. 写项目代码
创建文件夹 collect,编写 cpu.py、memory.py 等脚本。
2. 新建 .gitignore 文件
写入内容:
.venv/
__pycache__/
*.pyc
logs/
作用
告诉 Git:这些文件夹和文件不要纳入版本管理,不要上传到 GitHub。
虚拟环境、缓存文件体积大,不需要提交,只保留源码。
阶段 3:本地两步操作(核心两步:暂存 → 生成版本)
第 1 步:git add 把文件加入「暂存区」
bash
# 全部改动加入暂存
git add .
# 或者只添加单个文件
git add requirements.txt
通俗解释
把你改动过的文件,先放到 “临时候车区”。
此时文件还没有生成版本快照,只是标记为待提交。
查看状态
git status
绿色文件 = 已经进入暂存区。
第 2 步:git commit 生成永久版本快照
git commit -m "refactor: split collect module"
解释
把暂存区里所有文件打包,生成一条不可撤销的版本记录。
-m:填写本次修改说明(遵循规范:feat/fix/refactor/build)执行完成后,改动永久保存在本地
.git仓库里。
到这一步,代码只存在你这台 Ubuntu 服务器,GitHub 还看不到。
阶段 4:连接 GitHub,推送代码到远程
1. 关联远程仓库(只需要执行一次)
git remote add origin https://github.com/Raven-next/aiops-assistant.git
解释
给本地仓库绑定 GitHub 线上仓库地址,别名叫做 origin。
查看绑定是否成功
git remote -v
能看到 fetch 和 push 的 github 地址,代表绑定完成。
2. 首次推送绑定分支(只执行一次)
git branch -M main
git push -u origin main
git branch -M main:把旧分支名 master 改成 GitHub 默认的 main;-u origin main:把本地 main 分支和远程 origin/main 绑定在一起;绑定成功后,后续推送只需要简写:
git push。
3. 身份验证(HTTPS 方式)
Username:GitHub 用户名
Raven-nextPassword:填写生成的 Personal access token,不能填账号登录密码。
4. 推送成功标志
终端出现:
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
此时代码正式同步到 GitHub 网页仓库。
阶段 5:后续迭代更新代码的固定极简流程(日常开发)
每次修改代码后,只需要执行 3 条命令:
# 1. 把新改动放进暂存区
git add .
# 2. 生成新版本快照,填写修改备注
git commit -m "build: add docker sdk dependency"
# 3. 一键推送到GitHub
git push阶段 6:Git存储区域模型
工作区:你电脑里看得见的源码文件(collect 文件夹、txt 文件)
暂存区(Stage):
git add之后的临时缓存,文件被打包等待归档本地仓库 (.git):
git commit之后,生成历史版本,永久保存快照远程仓库 (GitHub):
git push之后,版本同步到线上服务器
流转路径:
工作区 →(git add)→ 暂存区 →(git commit)→ 本地仓库 →(git push)→ GitHub 远程仓库
阶段 7:配套高频排查命令
查看所有版本历史
git log --oneline
查看当前文件有没有未提交改动
git status
查看远程仓库地址
git remote -v
查看当前本地与远程分支是否同步
git log --oneline --all
容易踩坑的点总结
不要一次性多行粘贴命令,必须逐行回车执行;
HTTPS 推送密码必须用 Token,账号密码已经失效;
不要随便 Ctrl+C 中断 git push,会导致本地提交成功、远程同步中断;
虚拟环境文件夹.venv 一定要写进.gitignore,严禁上传;
commit 备注严格按照 feat/fix/refactor/build 规范填写,便于后续维护。