Git 工作流:常用命令与协作最佳实践

Git 是现代软件开发中不可或缺的分布式版本控制系统。无论是个人项目还是团队协作,掌握 Git 的正确用法都能极大提升开发效率。本文将介绍最常用的 Git 命令,并分享一套可靠的协作流程与最佳实践。

📌 前提: 假设你已经安装了 Git,并且配置了用户信息(git config --global user.namegit config --global user.email)。

1. 基础操作:初始化、提交与远程同步

每一个 Git 仓库都从初始化开始,或者从远程克隆。

# 初始化新仓库
git init

# 克隆远程仓库
git clone https://github.com/用户名/仓库名.git

# 查看当前状态
git status

# 添加文件到暂存区
git add 文件名     # 添加单个文件
git add .          # 添加所有改动

# 提交到本地仓库
git commit -m "提交信息"

# 推送到远程仓库(首次推送需设置上游)
git push -u origin main   # 或 master

# 拉取远程更新
git pull

git pull 实际上是 git fetch + git merge 的简写,建议在推送前先拉取,避免冲突。

2. 分支管理:并行开发的核心

分支让多人同时开发不同功能成为可能。主分支(mainmaster)通常用于生产环境代码。

# 查看本地分支
git branch

# 查看所有分支(包括远程)
git branch -a

# 创建新分支
git branch feature-login

# 切换分支
git checkout feature-login

# 创建并切换(常用)
git checkout -b feature-login

# 合并分支(先切换回目标分支,如 main)
git checkout main
git merge feature-login

# 删除分支(合并后清理)
git branch -d feature-login

注意:合并时若遇到冲突,Git 会标记冲突文件,需要手动编辑后再次 git addgit commit

3. 协作流程:Feature Branch 与 Pull Request

团队协作中,通常采用 GitHub FlowGitLab Flow 模式。核心思想:

# 本地开发流程示例
git checkout -b feature/user-auth
# ... 编写代码、提交 ...
git push origin feature/user-auth   # 推送到远程,然后在网页端创建 PR

4. 最佳实践

✅ 提交信息规范

使用清晰、统一的提交信息,推荐遵循 Conventional Commits 规范:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

例如:feat: 添加用户登录功能fix: 修复空指针异常docs: 更新 README

✅ 保持分支干净

避免将无关的改动混入同一个分支。一个分支只解决一个问题。合并前可以使用 git rebase 整理提交历史:

# 将当前分支的提交变基到目标分支(如 main)
git rebase main

# 交互式变基,压缩或修改提交
git rebase -i HEAD~3   # 操作最近3次提交

注意: 不要对已推送的公共分支进行变基,以免给他人造成困扰。

✅ 使用 .gitignore

忽略编译产物、依赖文件、敏感信息等。GitHub 提供了常用语言的 .gitignore 模板。例如 Java 项目的 .gitignore:

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

✅ 保护主分支

在 Git 托管平台(如 GitHub、GitLab)上,可以设置分支保护规则:

5. 常用问题排查

总结

Git 的功能远比本文列出的丰富,但掌握以上基础命令和流程,已经足以应对绝大多数日常开发与协作场景。关键在于理解 Git 的数据模型(提交、树、快照)和分支的本质——指针。持续练习并养成良好的习惯,Git 将成为你得心应手的工具。

作者:星河hm