一、.gitignore 核心作用
告诉 Git忽略哪些文件 / 文件夹(不跟踪、不提交到版本库),用于过滤无版本管理价值的内容(如临时文件、编译产物)。
二、.gitignore 规则语法(必掌握)
遵循 "匹配优先、从上到下生效",支持通配符与特殊符号:
| 规则示例 | 含义说明 |
|---|---|
*.log |
忽略所有.log后缀的文件(*匹配任意字符) |
temp/ |
忽略temp文件夹(末尾/表示匹配文件夹) |
!test.log |
例外规则:在*.log基础上,不忽略test.log(!取反) |
src/*.tmp |
仅忽略src目录下的.tmp文件(子目录不忽略) |
src/**/*.tmp |
忽略src及其所有子目录下的.tmp文件(**匹配任意层级) |
/README.txt |
仅忽略根目录下的README.txt(/限定根目录) |
# 注释 |
注释行(以#开头,不生效) |
三、.gitignore 使用流程
1. 创建 .gitignore 文件
- 项目根目录下新建
.gitignore文件(可手动创建或通过 GitHub 仓库初始化时选择生成)。
2. 编写忽略规则
根据项目类型添加对应规则,示例(前端项目):
plaintext
# 依赖文件夹
node_modules/
# 编译产物
dist/
# 日志/临时文件
*.log
*.tmp
# IDE配置
.vscode/
3. 提交 .gitignore 到版本库
bash
运行
git add .gitignore
git commit -m "添加.gitignore:忽略依赖、编译产物"
四、常见问题与解决
问题 1:已跟踪的文件加入.gitignore 后不生效
原因:.gitignore仅对未跟踪文件生效。解决:移除文件的 Git 跟踪(保留本地文件):
bash
运行
git rm --cached 文件名
git commit -m "停止跟踪文件名:已加入.gitignore"
问题 2:.gitignore 本身被忽略
原因:规则中写了.gitignore。解决:删除规则中的.gitignore行,重新添加跟踪:
bash
运行
git add .gitignore
五、通用 .gitignore 模板
可根据项目类型选择(如 Python/Java/ 前端),也可使用 GitHub 官方模板(https://github.com/github/gitignore)。
一、分支核心概念
分支是 Git 中隔离开发流程的工具,核心作用:
- 主分支(如
main/master):存放稳定的生产代码; - 功能分支(如
feature/login):开发新功能,避免影响主分支; - 修复分支(如
hotfix/bug-123):紧急修复线上问题。
二、分支基础操作
1. 查看分支
bash
运行
git branch # 查看本地分支(*标记当前分支)
git branch -r # 查看远程分支
git branch -a # 查看所有分支(本地+远程)
2. 创建 / 切换分支
bash
运行
git branch 分支名 # 创建分支
git checkout 分支名 # 切换到指定分支
# 简写:创建并切换
git checkout -b 分支名
3. 删除分支
bash
运行
git branch -d 分支名 # 删除本地分支(需先切换到其他分支)
git branch -D 分支名 # 强制删除未合并的分支
git push origin --delete 分支名 # 删除远程分支
4. 推送分支到远程
bash
运行
git push -u origin 分支名 # 推送本地分支到远程,并关联(-u表示设置上游)
三、分支协作流程(经典 Git Flow)
-
主分支:
main:稳定版本,用于发布;develop:开发主分支,整合功能分支。
-
功能分支:
- 从
develop分支创建(如feature/pay); - 开发完成后合并回
develop。
- 从
-
修复分支:
- 从
main分支创建(如hotfix/order-bug); - 修复后同时合并回
main和develop。
- 从
四、分支合并与冲突解决
1. 合并分支(如合并feature/login到develop)
bash
运行
git checkout develop # 切换到目标分支
git merge feature/login # 合并功能分支
2. 解决合并冲突
-
冲突提示:
CONFLICT (content): Merge conflict in 文件名; -
操作:打开冲突文件,删除 Git 标记(
<<<<<<</=======/>>>>>>>),手动合并内容; -
完成后标记冲突已解决: bash
运行
git add 文件名 git commit -m "解决合并冲突:合并feature/login"
五、分支管理技巧
-
命名规范 :用
类型/描述(如feature/xxx、hotfix/xxx),清晰区分分支用途; -
定期清理:删除已合并的旧分支,避免分支过多;
-
拉取远程分支 :
bash
运行
git checkout -b 本地分支名 origin/远程分支名 # 拉取远程分支到本地