日常开发中,掌握约 15 个核心 Git 命令就能覆盖绝大多数版本控制场景,关键在于理解工作区、暂存区与仓库的数据流转逻辑,而不是死记硬背所有参数。
先说结论:优先掌握配置、提交、同步与分支管理四类命令,遇到报错先查状态再操作。
- 适合:新手入门及日常功能开发场景
- 先看:执行操作前务必运行 git status 确认当前状态
- 建议:提交信息规范书写,便于后续追溯与回滚
命令速用版
以下命令按使用频率排序,可直接在终端复制执行:
# 配置身份(首次使用)
git config `--global` user.name "Your Name"
git config `--global` user.email "email@example.com"
# 获取代码
git clone <仓库地址>
git init # 本地初始化
# 查看状态与历史
git status
git log `--oneline`
# 提交变更
git add .
git commit -m "描述性信息"
# 同步远程
git pull origin <分支名>
git push origin <分支名>
# 分支管理
git branch -a
git checkout -b <新分支名>
git checkout <分支名>
# 撤销与回退
git reset `--soft` HEAD^
git revert HEAD^核心概念
Git 的核心在于四个工作区域的理解,命令只是操作这些区域的工具。
工作区 (Workspace):你电脑里能看到的项目目录,代码修改发生在这里。
暂存区 (Stage/Index):执行 git add 后,改动暂时存放的地方,准备提交但未提交。
本地仓库 (Repository):执行 git commit 后,版本安全保存的地方,HEAD 指向最新版本。
远程仓库 (Remote):托管在服务器上的代码库,如 GitHub 或 GitLab,用于团队协作。
实操流程
- 环境配置:安装 Git 后,先设置用户名和邮箱。使用
git config `--list`检查配置。 - 忽略文件:新建项目时建议创建
.gitignore文件,避免提交敏感信息或编译产物。 - 获取项目:新人入职通常使用
git clone拉取现有项目;新建项目则用git init初始化。 - 开发循环:修改代码后,先运行
git status查看变动文件。确认无误后,使用git add .加入暂存区,再用git commit -m "备注"提交。 - 同步协作:提交前建议先
git pull拉取远程最新代码,解决潜在冲突后再git push推送。首次推送分支需加-u参数。 - 分支操作:开发新功能时新建分支
git checkout -b feat/name,开发完成合并回主分支。
.gitignore 配置示例
在项目根目录创建 .gitignore 文件,填入以下内容可避免常见敏感文件被提交:
# 操作系统文件
.DS_Store
Thumbs.db
# 依赖目录
node_modules/
vendor/
# 编译产物
*.class
*.o
*.exe
# 敏感配置
.env
*.key
*.pem
# 日志文件
*.log合并冲突解决流程
当 git pull 或 merge 出现冲突时,按以下步骤处理:
- 定位冲突:运行
git status,查看标记为 "both modified" 的文件。 - 编辑文件:打开冲突文件,查找冲突标记:
<<<<<<< HEAD:当前分支内容=======:分隔线>>>>>>> branch-name:引入分支内容
- 保留代码:手动保留需要的代码,删除冲突标记符号。
- 重新提交:解决所有冲突后,执行
git add .和git commit完成合并。
验证方法
- 配置验证:运行
git config user.name查看当前配置。 - 提交验证:使用
git log查看最新提交记录。 - 远程验证:执行
git remote -v查看关联地址。 - 状态验证:操作完成后运行
git status,显示 "nothing to commit" 表示一致。
风险与常见坑
- 强制推送风险:避免随意使用
git push -f,这会覆盖远程历史,影响团队成员代码。 - 分支混淆:推送前确认当前分支名称,防止误推送到 master 或 production 分支。
- 重置历史风险:
git reset会修改提交历史,若在共享分支上使用可能导致他人代码丢失,公共分支建议使用git revert回退。 - 敏感信息泄露:不要将密码、密钥等敏感文件提交到仓库,一旦提交即使删除历史记录也可能泄露,务必使用 .gitignore 忽略。
- 关联错误:若远程仓库地址变更,需先用
git remote rm origin删除旧关联,再重新添加。
参考资料
- Git 官方文档:https://git-scm.com/doc