[笔记] Git 实战指南:Git命令大全 与 Git提交信息规范

本文档是关于 Git 版本控制系统的综合指南,涵盖了从基础到高级的各种命令和最佳实践。它旨在为开发者提供一个全面的资源,帮助他们更有效地使用 Git 进行代码版本管理、团队协作以及项目开发。文档分为两个主要部分:Git 命令大全和 Git 提交信息规范。

Git 安装文档 : [笔记] Windows 上 Git 安装详细教程:从零开始,附带每个选项解析

一、Git 命令大全

Git 是一个分布式版本控制系统,它允许团队协作开发项目,同时跟踪代码的变化。以下是一些常用的 Git 命令,分为不同的类别以帮助你更有效地使用 Git。

1.配置与初始化

  • git config --global user.name "Your Name": 设置提交者的用户名。
  • git config --global user.email "your.email@example.com": 设置提交者的电子邮件地址。
  • git init: 初始化一个新的 Git 仓库。
  • git clone <repository-url>: 克隆一个远程仓库到本地。

2.工作区和暂存区管理

  • git status: 显示工作区状态,包括哪些文件被修改、新增或删除。
  • git add <file>: 将更改添加到暂存区。
  • git add .: 将所有更改(新文件和修改过的文件)添加到暂存区。
  • git add -Agit add --all: 将所有更改(新文件、修改过的文件和删除的文件)添加到暂存区。
  • git add -u: 更新已经跟踪的文件(即修改过的文件和删除的文件),不会添加新的文件。
  • git reset <file>: 从暂存区移除文件但保留工作区的更改。
  • git rm <file>: 从工作区和暂存区中删除文件。
  • git mv <old-file> <new-file>: 移动或重命名文件。

3.提交历史

  • git commit -m "Commit message": 提交暂存区的更改,并附带一条信息。
  • git commit --amend: 修改最后一次提交(可以用来更新提交信息或添加遗漏的更改)。
  • git log: 查看提交历史。
  • git show <commit>: 显示特定提交的详细信息。
  • git diff: 显示工作区和暂存区之间的差异。
  • git diff --staged: 显示暂存区和最近一次提交之间的差异。
  • git diff <commit> <commit>: 比较两个提交之间的差异。
  • git blame <file>: 显示每个文件行的最后修改者和时间。
  • git bisect: 用于通过二分查找法定位引入错误的提交。

4.分支操作

  • git branch: 列出所有分支。
  • git branch <branch-name>: 创建新分支。
  • git checkout <branch-name>: 切换到指定分支。
  • git checkout -b <branch-name>: 创建并切换到新分支。
  • git merge <branch-name>: 合并指定分支到当前分支。
  • git rebase <branch-name>: 将当前分支的更改重新应用到指定分支的顶部。
  • git branch -d <branch-name>: 删除本地分支。
  • git push origin --delete <branch-name>: 删除远程分支。

5.远程仓库

  • git remote -v: 查看配置的远程仓库。
  • git remote add origin <repository-url>: 添加远程仓库。
  • git fetch <remote>: 从远程仓库获取最新数据但不合并。
  • git pull <remote> <branch>: 从远程仓库拉取最新数据并合并到当前分支。
  • git push <remote> <branch>: 推送本地分支的更改到远程仓库。
  • git push --tags: 推送标签到远程仓库。

6.标签

  • git tag <tagname>: 创建轻量级标签。
  • git tag -a <tagname> -m "Tag message": 创建带有注释的标签。
  • git show <tagname>: 显示标签的详细信息。
  • git tag -d <tagname>: 删除本地标签。
  • git push origin :refs/tags/<tagname>: 删除远程标签。

7.版本回退

  • git revert <commit>: 创建一个新的提交来撤销指定提交的更改。
  • git reset --hard <commit>: 回滚到指定提交,丢弃之后的所有更改。
  • git reset --soft <commit>: 回滚到指定提交,保留工作区和暂存区的更改。
  • git reset --mixed <commit>: 回滚到指定提交,保留工作区的更改但清空暂存区。

8.其他

  • git stash: 暂存当前的工作进度,使你可以切换到其他分支进行工作,然后再恢复这些更改。
  • git stash list: 查看所有的暂存。
  • git stash apply: 恢复最新的暂存,但不删除它。
  • git stash drop: 删除最新的暂存。
  • git stash pop: 恢复并删除最新的暂存。

9.快速参考

常用命令速查表

功能 命令
初始化仓库 git init
克隆仓库 git clone <repository-url>
查看状态 git status
添加更改到暂存区 git add <file> / git add . / git add -A
提交更改 git commit -m "Commit message"
查看提交历史 git log
创建分支 git branch <branch-name>
切换分支 git checkout <branch-name>
合并分支 git merge <branch-name>
推送更改 git push <remote> <branch>
拉取更改 git pull <remote> <branch>

高级命令速查表

功能 命令
修改最后一次提交 git commit --amend
撤销提交 git revert <commit>
回滚到指定提交 git reset --hard <commit>
暂存更改 git stash
查看暂存列表 git stash list
应用暂存 git stash apply
删除暂存 git stash drop
恢复并删除暂存 git stash pop
查看文件行的历史 git blame <file>
定位引入错误的提交 git bisect

二、Git 提交信息

为了保持代码变更历史的清晰和易于理解,使用标准化的提交信息格式是非常重要的。以下是提交信息结构、常见的提交类型以及一些实用的提交信息示例。

1.提交信息格式

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  • type:提交的类别。
  • scope:可选,指明本次提交影响的范围(如模块、文件、组件等)。
  • subject:简短、明确地描述提交的目的,使用祈使句形式,首字母小写,结尾不加标点符号。
  • body:详细描述提交的内容,解释变更的理由或与之前行为的不同之处。
  • footer :包含Breaking Changes或者关闭相关Issue的信息。

2.常见的 type 类型

  • feat:新增功能(feature)
  • fix:修复bug
  • docs:文档更新
  • style:不影响代码含义的更改(如格式化、缺少分号、空格调整等)
  • refactor:重构代码(既不是新增功能也不是修复bug)
  • perf:性能优化
  • test:添加缺少的测试或更正现有测试
  • chore:对构建过程或辅助工具和库的更改(如文档生成脚本)
  • ci:持续集成配置文件和脚本的更改
  • revert:回滚到上一个版本
  • build:改变构建流程,新增依赖库、工具等
  • delete:删除功能或文件
  • modify:修改功能

3.提交信息示例

  • 新增功能

    feat(user): 添加登录功能

  • 修复bug

    fix(authentication): 解决用户认证中的空指针异常

  • 文档更新

    docs(README.md): 更新安装说明

  • 样式调整

    style(css): 改进按钮样式以提升用户体验

  • 代码重构

    refactor(service): 将大型服务拆分为更小的服务

  • 性能优化

    perf(api): 优化查询以减少响应时间

  • 添加测试

    test(unit): 为用户模型添加单元测试

  • 辅助任务

    chore(deps): 升级lodash从4.17.20到4.17.21

  • 持续集成

    ci(pipeline): 为预发布环境添加部署步骤

  • 回滚更改

    revert: 回滚上一次提交,因引入破坏性变更

命令示例 git commit -m "feat(user): 添加登录功能"

4.额外提示

  • Breaking Changes :如果提交引入了破坏性的变更(即不兼容的API变更),可以在提交信息的footer部分注明BREAKING CHANGE:,后面跟随简短描述。
  • Closes/Fixes :如果你的提交解决了某个Issue,可以在提交信息的footer部分写上Closes #issue-numberFixes #issue-number,这样一些Git托管平台(如GitHub、GitLab)会自动关闭相应的Issue。
  • Co-authored-by :如果有多个作者参与了同一个提交,可以在提交信息的footer部分加上Co-authored-by: Name <email>来标注所有贡献者。
相关推荐
Jozky862 分钟前
Carla自带样例:automatic_control.py解析
笔记·carla
“αβ”18 分钟前
解决 Linux git push 成功后(但没有出现绿点)的问题
git
JAVA终结者31 分钟前
IDEA结合GitLab使用
gitlab
相醉为友42 分钟前
091 脉冲波形的变换与产生
笔记
从零开始的-CodeNinja之路1 小时前
【Jmeter】深度解剖Jmeter的二次开发
git·jmeter
二进制怪兽1 小时前
[笔记] 编译LetMeowIn(C++汇编联编程序)过程
汇编·c++·笔记
Darker'K1 小时前
泷羽sec-burp(6)暴力破解与验证码识别绕过(上,在Kali上搭建ddddocr、aiohttp环境) 学习笔记
笔记·学习
留白19922 小时前
GitHub问题整理
github
MoonBit月兔3 小时前
GitHub 正式收录 MoonBit 作为一门通用编程语言!核心用户突破三万!
开发语言·github·编程语言·moonbit
Spcarrydoinb8 小时前
python学习笔记—5—标识符和运算符
笔记·python·学习