单机篇-Day7|存档重来:git add/commit 完整提交流程,.gitignore 忽略文件

13 次阅读 2026-10-29 16:52

📖 知识点

1. 完整提交流程(存档标准动作)

git status                  # 1. 看状态:有哪些改动
git diff                    # 2. 看改动内容,确认没问题
git add .                   # 3. 暂存要提交的文件
git status                  # 4. 再确认暂存区内容
git commit -m "说明"        # 5. 提交存档
git log --oneline           # 6. 确认新版本已存档

 

这六步是日常提交的 "标准动作",养成习惯,存档清晰不混乱。

2. 为什么要忽略文件?

项目里有些文件不该进版本库:

 

文件例子为什么不进
临时文件.tmp、~ 后缀没用,浪费空间
日志*.log每次变,不该版本管理
本地配置.env、本地密钥各人不同,且含敏感信息
编译产物

pycache、node_modules

能重新生成,不该入库

用 .gitignore 声明 "这些文件忽略,Git 不跟踪"。

3. 创建 .gitignore

在项目根目录建 .gitignore 文件,写上要忽略的规则:

# 忽略所有 .log 日志文件
*.log
# 忽略 __pycache__ 目录
__pycache__/
# 忽略本地配置(含密钥)
.env

 

每行一条忽略规则,* 是通配符。

4. 怎么建 .gitignore(echo 或 vim)

echo "*.log" > .gitignore
echo "__pycache__/" >> .gitignore

 

.gitignore 本身通常要提交进仓库,让团队所有人都忽略同样的文件。

⚠️ 易错提醒

  1. .gitignore 写好后,被忽略的文件就不会出现在 git status 里

  2. .gitignore 规则用 * 通配,如 *.log 忽略所有 log 文件

  3. 已经被跟踪的文件,.gitignore 不生效(需先移除跟踪,进阶再学)

⚔️ 剧情 Kata 实战任务

任务需求:

  1. 模拟创建 "垃圾文件":临时文件、日志、缓存目录

  2. 创建 .gitignore,把日志和缓存目录忽略掉

  3. 用 git add + git commit 把 .gitignore 本身提交(团队共享忽略规则)

  4. 用 git status 验证:垃圾文件不再出现(被忽略了)

  5. 走一遍完整提交流程,确认干净

参考代码(在终端依次敲)

# 0. 进仓库
cd ~/外卖App

# 1. 制造"垃圾文件"
touch 调试.log
mkdir -p __pycache__
touch __pycache__/缓存.pyc

# 2. 创建 .gitignore,忽略日志和缓存
echo "*.log" > .gitignore
echo "__pycache__/" >> .gitignore

# 3. 看看状态:垃圾文件被忽略了吗
git status

# 4. 提交 .gitignore(让团队共享规则)
git add .gitignore
git commit -m "chore: 添加.gitignore忽略日志和缓存"

# 5. 确认干净
git status
git log --oneline

 

运行示例:

user@linux:~/外卖App$ touch 调试.log
user@linux:~/外卖App$ mkdir -p __pycache__
user@linux:~/外卖App$ echo "*.log" > .gitignore
user@linux:~/外卖App$ echo "__pycache__/" >> .gitignore

user@linux:~/外卖App$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include)
        .gitignore

user@linux:~/外卖App$ git add .gitignore
user@linux:~/外卖App$ git commit -m "chore: 添加.gitignore忽略日志和缓存"
[master c5d6e7f] chore: 添加.gitignore忽略日志和缓存

user@linux:~/外卖App$ git status
On branch master
nothing to commit, working tree clean

 

💡 观察:创建了 调试.log 和 __pycache__ 后,因为 .gitignore 里写了规则,git status 里看不到它们,只显示 .gitignore 本身待提交。垃圾文件被成功挡在门外,项目保持干净。

🧠 思考题

  1. 哪些类型的文件应该写进 .gitignore?为什么 .env(含密钥的本地配置)不能提交进仓库?

  2. .gitignore 规则里 *.log 的 * 表示什么?为什么 .gitignore 本身也要提交?