👉 项目官网:https://www.python-office.com/ 👈

github star

大家好,这里是程序员晚枫,正在all in AI编程实战,专注于给小白分享Python自动化办公5年了。

今天教你怎么用 Git 管理代码历史记录,再也不用担心改错代码了!

1、什么是Git?为什么需要它?

你有没有遇到过这种惨痛经历:

1
2
3
惨痛经历1:改了3天的代码,突然发现改错了,想找回原来的版本,但已经覆盖了……
惨痛经历2:电脑蓝屏,文件丢失,1周的代码全没了……
惨痛经历3:同事改了你的代码,冲突了,两人对着改了一整天……

Git就是来解决这些问题的。

Git是什么?

  • 一个版本控制工具,由Linux之父Linus Torvalds开发
  • 像代码的"时光机",可以随时回到任何一个历史版本
  • 像一个"备份系统",每次修改都会被记录
  • 像一个"协作平台",多人可以同时修改同一份代码

不学Git的后果:

  • 代码改坏了找不回来
  • 电脑坏了代码全丢
  • 无法和别人协作开发

学完Git后:

  • ✅ 随时回退到任何版本
  • ✅ 代码永远有备份(推送到GitHub/Gitee)
  • ✅ 多人协作不会冲突

2、安装Git

Windows

去官网下载安装包:https://git-scm.com/download/win

下载后双击安装,一路"下一步"即可。

安装完成后,右键菜单会出现 **"Git Bash Here"**。

Mac

打开终端,执行:

1
brew install git

或者去官网下载:https://git-scm.com/download/mac

验证安装

打开终端(Windows按Win+R输入cmd,Mac按Command+空格搜索"终端"),输入:

1
git --version

看到 git version 2.x.x 这样的版本号,说明安装成功!

3、初始配置:告诉Git你是谁

安装完Git后,第一步是配置你的用户名和邮箱(每次提交代码都会记录):

1
2
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

比如:

1
2
git config --global user.name "程序员晚枫"
git config --global user.email "wanfeng@example.com"

查看配置是否成功:

1
git config --list

4、Git的4个核心概念

理解这4个概念,Git就学会了一半:

1
2
3
工作区(Working Directory)→ 暂存区(Staging Area)→ 本地仓库(Local Repo)→ 远程仓库(Remote Repo)

你写的代码文件 git add 后放这里 git commit 后存这里 git push 到 GitHub/Gitee

简单类比:

  • 工作区 = 你的办公桌(正在写的文件)
  • 暂存区 = 文件篮(准备提交的文件)
  • 本地仓库 = 保险柜(已保存的版本)
  • 远程仓库 = 银行保险箱(云端备份)

5、基本操作:从创建到提交

第1步:创建一个Git仓库

1
2
3
4
5
6
# 1. 创建一个项目文件夹
mkdir my_automation
cd my_automation

# 2. 初始化Git仓库
git init

执行后,你会看到:

1
Initialized empty Git repository in /path/to/my_automation/.git/

第2步:查看状态

1
git status

这是最常用的命令,随时看看哪些文件被修改了、哪些还没提交。

第3步:添加文件到暂存区

1
2
3
4
5
# 添加单个文件
git add hello.py

# 添加所有文件
git add .

第4步:提交到本地仓库

1
git commit -m "提交说明:写了一个hello world"

提交说明很重要! 好的提交说明让你以后能快速找到某个版本:

1
2
3
4
5
6
7
8
9
❌ 坏的提交说明:
"更新了"
"修改"
"fix"

✅ 好的提交说明:
"添加Excel批量读取功能"
"修复PDF合并时的编码问题"
"优化图片压缩速度,提升50%"

6、查看历史记录

1
2
3
4
5
6
7
8
9
10
11
# 简洁版(推荐)
git log --oneline

# 详细版
git log

# 查看某个文件的修改历史
git log --oneline hello.py

# 查看某个文件的修改内容
git diff HEAD hello.py

输出示例:

1
2
3
a3b2c1d (HEAD -> main) 优化Excel读取速度
e4f5g6h 添加PDF合并功能
i7j8k9l 初始版本:hello world

7、撤销修改:Git的"后悔药"

场景1:工作区改错了,还没add

1
2
3
4
5
# 撤销单个文件的修改
git checkout -- hello.py

# 撤销所有文件的修改
git checkout -- .

场景2:已经add了,但还没commit

1
2
# 取消暂存(文件回到工作区)
git reset HEAD hello.py

场景3:已经commit了,想回退

1
2
3
4
5
6
7
8
# 回退到上一个版本(保留修改)
git reset --soft HEAD^

# 回退到上一个版本(丢弃修改,谨慎使用!)
git reset --hard HEAD^

# 回退到指定版本
git reset --hard a3b2c1d

⚠️ --hard 会丢失代码,使用前请三思!建议先用 git stash 备份。

场景4:想找回某个旧版本的文件

1
2
3
4
5
# 查看某个版本的内容
git show a3b2c1d:hello.py

# 恢复某个文件到指定版本
git checkout a3b2c1d -- hello.py

8、分支管理:开发新功能不影响主代码

什么是分支?

分支就像平行宇宙。你在主分支(main)开发了稳定版本,想尝试一个新功能,就开一个新分支。新功能开发好了再合并回来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看所有分支
git branch

# 创建并切换到新分支
git checkout -b add-pdf-merge

# 在新分支上开发...
# (写代码、提交)

# 开发完成,切换回主分支
git checkout main

# 合并新功能
git merge add-pdf-merge

# 删除已合并的分支
git branch -d add-pdf-merge

9、远程仓库:把代码备份到云端

注册GitHub或Gitee

推送代码到远程仓库

1
2
3
4
5
6
# 1. 在Gitee上创建一个新仓库(网页操作)
# 2. 关联远程仓库
git remote add origin https://gitee.com/你的用户名/my_automation.git

# 3. 推送代码
git push -u origin main

从远程仓库克隆

换了一台电脑,或者同事要参与开发:

1
2
git clone https://gitee.com/你的用户名/my_automation.git
cd my_automation

常用远程操作

1
2
3
4
5
6
7
8
# 拉取远程最新代码
git pull

# 推送本地代码到远程
git push

# 查看远程仓库
git remote -v

10、实战:管理你的自动化办公项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 第1步:创建项目
mkdir my_office_tools
cd my_office_tools
git init

# 第2步:写第一个脚本
# (用你喜欢的编辑器创建 excel_merge.py)

# 第3步:提交第一个版本
git add .
git commit -m "初始版本:Excel合并脚本"

# 第4步:开发新功能——PDF合并
git checkout -b add-pdf-merge
# (创建 pdf_merge.py)
git add pdf_merge.py
git commit -m "添加PDF合并功能"

# 第5步:合并回主分支
git checkout main
git merge add-pdf-merge

# 第6步:推送到Gitee
git remote add origin https://gitee.com/你的用户名/my_office_tools.git
git push -u origin main

11、常见问题

Q:Git和GitHub是什么关系?

A:Git是版本控制工具(软件),GitHub是代码托管网站(服务)。类似"播放器"和"视频网站"的关系。国内可以用Gitee替代GitHub。

Q:commit说明怎么写比较好?

A:简短描述这次修改做了什么。推荐格式:类型: 描述,如 feat: 添加PDF合并功能fix: 修复编码问题

Q:代码改坏了怎么找回?

A:用 git log 找到之前的版本号,然后 git checkout 版本号 -- 文件名 恢复。

Q:push的时候要求输入密码怎么办?

A:配置SSH密钥可以免密码。在Gitee设置→SSH公钥,按官方教程配置即可。

12、下讲预告

学会了Git,下一讲我们学习 Python虚拟环境:搭建独立的开发环境,让每个项目的依赖互不干扰。

敬请期待!


有问题欢迎加微信 python-office 进群交流~

程序员晚枫专注AI编程培训。

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!