Git 常用命令速查表

什么是 Git?

Git 是一个开源的分布式版本控制系统,由 Linux 创始人 Linus Torvalds 于 2005 年开发,用于高效地管理各种大小的项目。它是目前世界上最先进的版本控制系统,广泛应用于软件开发领域。

Git 的核心设计理念是保证数据的完整性和安全性,所有代码变更都会被记录和追踪,同时支持多人协作开发。

基础操作

初始化与克隆

  • git init — 在当前目录初始化一个新的 Git 仓库
  • git clone <url> — 从远程仓库克隆代码到本地
  • git clone <url> <dir> — 克隆到指定的本地目录

添加与提交

  • git add <file> — 添加单个文件到暂存区
  • git add . — 添加所有更改的文件到暂存区
  • git add -p — 交互式逐块添加,可以选择部分更改
  • git commit -m "msg" — 提交更改并添加说明信息
  • git commit -am "msg" — 跳过暂存直接提交已跟踪文件的修改

查看状态与日志

  • git status — 查看仓库状态,显示哪些文件被修改过
  • git log — 查看详细提交历史记录
  • git log --oneline — 以简洁的单行形式显示提交历史
  • git log --graph --oneline --all — 以图形化方式展示分支历史
  • git diff — 查看工作区和暂存区的差异
  • git diff --staged — 专门查看已暂存的更改

分支管理

分支是 Git 最强大的功能之一,它允许开发者在独立的分支上工作而不影响主代码。

  • git branch — 列出所有本地分支
  • git branch <name> — 创建一个名为 name 的新分支
  • git checkout <name> — 切换到指定分支
  • git checkout -b <name> — 创建新分支并立即切换过去
  • git merge <name> — 将指定分支合并到当前分支
  • git branch -d <name> — 删除已合并的分支
  • git stash — 临时保存当前工作区的修改
  • git stash pop — 恢复最近一次暂存的修改

分支高级操作

  • git rebase <branch> — 将当前分支的提交变基到指定分支上
  • git cherry-pick <commit> — 选择特定提交应用到当前分支
  • git reflog — 查看引用日志,找回误删的提交记录

远程协作

  • git remote -v — 查看所有已配置的远程仓库地址
  • git remote add origin <url> — 添加名为 origin 的远程仓库
  • git push origin <branch> — 将本地分支推送到远程仓库
  • git pull origin <branch> — 从远程仓库拉取并合并最新代码
  • git fetch — 仅获取远程更新但不自动合并
  • git remote remove origin — 移除远程仓库配置

撤销与修正

  • git reset HEAD <file> — 取消文件的暂存状态
  • git checkout -- <file> — 丢弃工作区的所有修改
  • git revert <commit> — 创建一个新的提交来撤销指定提交
  • git restore <file> — 恢复工作区文件到指定状态
  • git commit --amend — 修正或补充最后一次提交的内容

标签管理

标签用于标记特定的发布版本,如 v1.0、v2.0 等。

  • git tag — 列出所有标签
  • git tag -a v1.0 -m "Release v1.0" — 创建带注释的标签
  • git push origin --tags — 将所有标签推送到远程仓库
  • git checkout tags/<tagname> — 切换到指定标签

其他实用命令

  • git blame <file> — 查看文件中每一行的修改者和修改时间
  • git archive — 创建项目某个版本的归档压缩包
  • git bisect — 使用二分查找快速定位引入 bug 的提交
  • git clean -fd — 删除所有未跟踪的文件和目录

常用配置

  • git config --global user.name "Your Name" — 设置全局用户名
  • git config --global user.email "email@example.com" — 设置全局邮箱
  • git config --global core.editor vim — 设置默认文本编辑器
  • git config --global init.defaultBranch main — 设置默认分支名称

最佳实践

  1. 频繁提交:每次提交只做一件事,便于回溯和定位问题
  2. 写好提交信息:使用清晰简洁的提交说明,建议遵循约定格式
  3. 善用分支:每个功能或 bug 修复都在独立分支上开发
  4. 定期同步:经常从主分支拉取最新代码避免大规模冲突
  5. 审查代码:使用 Pull Request 进行团队代码审查

Git 工作流程

功能分支工作流

  1. 从主分支创建功能分支:checkout -b feature/xxx
  2. 在功能分支上进行开发和提交
  3. 完成后推送到远程:git push origin feature/xxx
  4. 创建 Pull Request 进行代码审查
  5. 合并后删除功能分支

修复分支工作流

  1. 从主分支创建修复分支:checkout -b fix/xxx
  2. 应用修复并提交
  3. 通过 PR 合并到主分支

Git 在实际项目中的应用

团队协作最佳实践

  • 使用特性分支进行开发,避免直接在主分支上修改
  • 提交前总是先拉取最新代码,减少冲突
  • 使用有意义的提交信息,便于团队成员理解变更内容
  • 代码审查是质量保证的重要环节,不要跳过这一步

版本发布流程

  1. 创建发布分支 release/v1.0
  2. 进行最后的测试和修复
  3. 合并到 main 分支并创建标签 v1.0
  4. 从发布分支部署到生产环境

Git 常见问题解答

如何解决合并冲突?

合并冲突是团队协作中常见的情况。解决步骤:

  1. 使用 git status 查看冲突文件
  2. 打开文件手动解决冲突标记
  3. 解决后使用 git add 标记已解决
  4. 完成合并提交 git commit

如何撤销已推送的提交?

  • 使用 git revert <commit> 创建安全的撤销提交
  • 或使用 git reset --hard HEAD~1 强制回退(仅限本地)

如何查看某个文件的修改历史?

使用 git log -p <file> 可以查看文件的详细修改历史,或使用 git blame <file> 查看每一行的修改者。

💡 提示:ToolYou 提供丰富的开发工具,包括 Git 命令查询、代码比较、Diff 对比等功能,帮助你提高工作效率!

返回知识中心