三、团队协作核心技巧
3.1 解决合并冲突
冲突是团队协作中不可避免的情况。合理解决冲突是每个开发者的必备技能。
# 模拟冲突场景 # 两个开发者同时修改同一文件的同一行 # 当你 pull 时提示冲突 git pull origin main # 输出: CONFLICT (content): Merge conflict in index.html # 查看冲突文件 git status # 打开冲突文件会看到类似以下内容: # <<<<<<< HEAD # <title>当前版本</title> # ======= # <title>远程版本</title> # >>>>>>> feature-branch # 手动修改后保存,标记为已解决 git add index.html git commit -m "解决 index.html 合并冲突"
使用图形化工具解决冲突
# 使用 vimdiff git mergetool --tool=vimdiff # 使用 VS Code 内置工具 code --wait --merge <current> <base> <other> <result>
3.2 代码审查最佳实践
创建 Pull Request 前请自查:代码能否正常运行?是否包含测试?是否有重复代码?命名是否清晰?是否有硬编码?是否有安全漏洞?

3.3 Git Hooks 自动化检查
# pre-commit hook 示例 (.git/hooks/pre-commit) #!/bin/bash if git diff --cached | grep "console\.log"; then echo "错误:提交中包含 console.log,请删除后重试" exit 1 fi chmod +x .git/hooks/pre-commit # 使用 husky(Node.js 项目) npx husky init npx husky add .husky/pre-commit "npm run lint"
四、Git 高级操作与最佳实践
4.1 交互式 Rebase 整理提交历史
# 合并最近 3 个提交 git rebase -i HEAD~3 # 交互界面选项 pick # 使用该提交 reword # 修改提交信息 squash # 合并到上一个提交 fixup # 合并并丢弃提交信息 drop # 删除该提交 # 示例:将 3 个杂乱的提交合并为 1 个 git log --oneline # a1b2c3d 修复标题 # d4e5f6a 调整样式 # g7h8i9j 添加页面 # rebase 后:1 个干净的提交 git log --oneline # x1y2z3a 添加用户信息页面
4.2 Cherry-Pick 捡樱桐
# 将特定提交应用到当前分支 git cherry-pick commit-hash # 示例 git checkout hotfix/v1.2 git cherry-pick a1b2c3d # 避免自动提交 git cherry-pick -n a1b2c3d
4.3 Stash 临时保存工作进度
git stash save "用户登录功能开发中"
git stash list
git stash pop
git stash apply stash@{2}
git stash -u
git stash drop stash@{0}
git stash clear4.4 Git Bisect 二分查找 Bug
git bisect start git bisect bad git bisect good v1.0 git bisect good git bisect bad git bisect reset
五、CI/CD 集成与自动化部署
5.1 GitHub Actions 自动化工作流
# .github/workflows/ci.yml
name: CI/CD Pipeline
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm ci
- run: npm test
- run: npm run build
deploy:
needs: test
runs-on: ubuntu-latest
if: github.ref == "refs/heads/main"
steps:
- uses: actions/checkout@v4
- name: Deploy to Server
uses: appleboy/ssh-action@v1.0
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_KEY }}
script: |
cd /var/www/app
git pull origin main
npm ci
npm run build
pm2 restart app5.2 Semantic Versioning 语义化版本
# 版本格式: MAJOR.MINOR.PATCH npm version patch # 1.0.0 → 1.0.1 npm version minor # 1.0.0 → 1.1.0 npm version major # 1.0.0 → 2.0.0 git tag v1.2.3 git push origin --tags
六、版本控制最佳实践
6.1 .gitignore 文件配置
# .gitignore 模板 node_modules/ vendor/ dist/ build/ .env .env.local .DS_Store Thumbs.db .vscode/ .idea/ *.log npm-debug.log*
6.2 提交信息规范(Conventional Commits)
# 格式: <type>(<scope>): <description> feat: # 新功能 fix: # Bug 修复 docs: # 文档变更 style: # 代码格式 refactor: # 重构 perf: # 性能优化 test: # 添加测试 chore: # 构建/工具变更 # 示例 feat(auth): add JWT token validation fix(api): handle null response in getUser endpoint
6.3 安全最佳实践
# 使用 GPG 签名提交 gpg --full-generate-key git config --global commit.gpgsign true # 扫描提交历史中的敏感信息 git log -p -S "password" --all
七、常见问题排查手册
7.1 误提交后如何撤回
git reset --soft HEAD~1 git reset --hard HEAD~1 git reset --hard HEAD~1 git push --force-with-lease origin main
7.2 修改历史提交信息
git commit --amend -m "新的提交信息" git rebase -i HEAD~3 # 将需要修改的提交前面的 pick 改为 reword
总结
Git 版本控制是每个开发者必须掌握的核心技能。本文从安装配置开始,逐步深入到分支策略、团队协作、CI/CD 集成等高级话题。
记住几个核心原则:
频繁提交:小步提交,保持修改粒度合理
规范的信息:用 Conventional Commits 规范写提交信息
合理的分支策略:根据团队规模和发布周期选择合适的分支模型
代码审查:每个合并请求都应该经过审查
自动化:用 CI/CD 减少人工操作失误
最后修改时间:
2026 年 Linux 服务器运维完全指南:从基础配置到性能调优的实战手册
上一篇
2026年05月13日 15:25
2026 年 Docker 容器化部署完全指南:从入门到生产级集群编排实战
下一篇
2026年05月13日 15:29
相关文章
发表评论
评论列表