第七章:常见问题与实用技巧
← 上一章:在 Cursor / VS Code 中使用 Git | 返回目录 | 下一章:Git 工作流速查表 →
7.1 .gitignore 文件
在项目中,有些文件是不需要被 Git 管理的,比如:
- 依赖包文件夹(
node_modules/、venv/)—— 太大了,别人可以自己安装 - 环境变量文件(
.env)—— 含有密码等敏感信息 - 编译产物(
__pycache__/、.pyc)—— 可以自动生成 - 系统文件(
.DS_Store、Thumbs.db)—— 和项目无关
创建方法:
在项目根目录下新建一个名为 .gitignore 的文件(注意文件名以点开头),写入需要忽略的规则:
# Python 相关
__pycache__/
*.pyc
venv/
.env
# Node.js 相关
node_modules/
# IDE 相关
.vscode/
.idea/
# 系统文件
.DS_Store
Thumbs.db
# 日志文件
*.log
规则说明:
#开头的行是注释文件夹名/忽略整个文件夹*.pyc忽略所有以 .pyc 结尾的文件- 只对还没有被 Git 跟踪的文件有效。如果文件已经被提交过了,需要先用
git rm --cached 文件名取消跟踪
推荐做法:每个项目在第一次提交时就创建 .gitignore 文件。
7.2 撤销操作
| 场景 | 命令 | 说明 |
|---|---|---|
| 修改了文件,想恢复原样 | git restore 文件名 | 丢弃工作区的修改 |
| 已经 add 了,想取消暂存 | git restore --staged 文件名 | 从暂存区移出,修改内容保留 |
| 已经 commit 了,想改提交说明 | git commit --amend -m "新说明" | 修改最近一次的提交信息 |
| 已经 commit 了,想撤销这次提交 | git reset --soft HEAD~1 | 撤销提交,修改内容回到暂存区 |
示例:
# 不小心改错了文件,想恢复到上一次提交的状态
git restore app.py
# add 了不该 add 的文件,取消暂存
git restore --staged secret.env
# 提交信息写错了
git commit --amend -m "正确的提交说明"
注意:
git restore 文件名会丢失你的修改,操作前确认一下。
7.3 版本回退
如果你想回到之前的某个版本:
第一步:找到目标版本的 ID
git log --oneline
输出:
c3d4e5f 第三次提交:添加app.py
b2c3d4e 第二次提交:补充项目说明
a1b2c3d 第一次提交:添加README
第二步:回退
# 回到指定版本(谨慎:会丢失之后的所有修改)
git reset --hard b2c3d4e
后悔了?还能找回来!
# 查看所有操作记录(包括已经"消失"的提交)
git reflog
# 找到想恢复的版本ID,再 reset 回去
git reset --hard c3d4e5f
git reflog是你的”后悔药”,只要没有超过 90 天,几乎所有操作都能找回。
7.4 常见报错与解决
1. fatal: not a git repository
原因:你当前所在的文件夹不是一个 Git 仓库。
解决:确认你 cd 到了正确的项目目录。或者用 git init 初始化。
cd my-project # 进入项目目录
git status # 再试试
2. error: failed to push some refs to ...
原因:远程仓库有更新(比如队友推了新代码),你本地没同步。
解决:先拉取再推送。
git pull
git push
如果 pull 时遇到冲突,解决冲突后再 push。
3. fatal: remote origin already exists
原因:你已经设置过远程仓库地址了。
解决:如果想更换地址:
git remote set-url origin 新的仓库地址
4. 中文文件名显示为乱码(如 \xxx\xxx)
解决:
git config --global core.quotepath false
5. Please tell me who you are
原因:还没配置用户名和邮箱。
解决:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
6. Windows 下换行符警告 LF will be replaced by CRLF
解决(消除警告):
git config --global core.autocrlf true
← 上一章:在 Cursor / VS Code 中使用 Git | 返回目录 | 下一章:Git 工作流速查表 →