1. add
- 将文件内容添加到 Git 仓库的暂存区
- 解释: 将文件内容添加到 Git 仓库的暂存区。
- 使用方式:
git add <file>
,将指定文件添加到暂存区。也可使用git add .
将所有修改过的文件添加到暂存区。 - 导致结果: 指定的文件被追踪并添加到下一次提交中。
2. am
- 从邮箱应用一系列的补丁
- 解释: 从邮箱应用一系列的补丁。
- 使用方式:
git am < <mbox>
,从指定的邮箱中应用一系列的补丁。 - 导致结果: 应用邮箱中的补丁,使代码库中的变更得以体现。
3. archive
- 从指定的树中创建文件的归档(archive)
- 解释: 从指定的树中创建文件的归档(archive)。
- 使用方式:
git archive --format=<format> --output=<file> <tree-ish>
,将指定树中的文件创建为一个压缩文件。 - 导致结果: 创建了一个包含指定树中文件快照的归档文件,用于发布或备份。
4. bisect
- 使用二分查找定位引入 bug 的提交
- 解释: 使用二分查找定位引入 bug 的提交。
- 使用方式:
git bisect start
开始二分查找,然后用git bisect bad
(标记当前提交包含 bug)和git bisect good
(标记当前提交没有 bug)进行迭代,最后使用git bisect reset
结束。 - 导致结果: 通过二分查找找到引入 bug 的提交,帮助定位和修复问题。
5. branch
- 列出、创建或删除分支
- 解释: 列出、创建或删除分支。
- 使用方式:
git branch
列出所有分支,git branch <branch-name>
创建新分支,git branch -d <branch-name>
删除指定分支。 - 导致结果: 分支的创建和删除,用于在项目中进行并行开发或修复 bug。
6. bundle
- 移动对象和引用通过归档文件
- 解释: 移动对象和引用(包括分支、标签等)通过归档文件。
- 使用方式:
git bundle create <file> <git-rev-list>
,将指定范围的对象和引用打包成一个二进制文件。 - 导致结果: 创建了一个包含指定对象和引用的二进制文件,可以在不同的仓库之间传递,类似于克隆的效果。
7. checkout
- 切换分支或还原工作树文件
-
解释:
checkout
命令用于在不同的分支之间切换,或者还原工作树中的文件。
-
使用方式:
- 切换分支:
git checkout <branch-name>
- 还原文件:
git checkout -- <file>
- 切换分支:
-
导致结果:
- 在不同分支间切换,或者还原工作树中的文件到指定的状态。
8. cherry-pick
- 应用已存在提交引入的更改
-
解释:
cherry-pick
命令用于将已存在提交引入的更改应用到当前分支。
-
使用方式:
git cherry-pick <commit-hash>
-
导致结果:
- 当前分支应用了指定提交引入的更改。
9. citool
- 图形化的 git-commit 替代工具
-
解释:
citool
提供了一个图形界面,用于执行提交操作,是git-commit
的图形替代工具。
-
使用方式:
git citool
-
导致结果:
- 打开图形界面,允许用户进行提交操作。
10. clean
- 从工作树中删除未跟踪的文件
-
解释:
clean
命令用于从工作树中删除未跟踪的文件。
-
使用方式:
git clean -n
:显示将要删除的文件,但不实际删除。git clean -f
:实际删除未跟踪的文件。
-
导致结果:
- 工作树中的未跟踪文件被删除。
11. clone
- 将仓库克隆到新目录
-
解释:
clone
命令用于将仓库克隆到新的目录中。
-
使用方式:
git clone <repository-url> [<directory>]
-
导致结果:
- 在指定目录中创建了仓库的副本。
12. commit
- 记录对仓库的更改
-
解释:
commit
命令用于记录对仓库的更改。
-
使用方式:
git commit -m "commit message"
-
导致结果:
- 仓库的当前状态被记录为一个新的提交。
13. describe
- 为对象提供基于可用引用的人类可读名称
-
解释:
describe
命令用于为对象(通常是提交)提供基于可用引用的人类可读名称。
-
使用方式:
git describe <ref>
-
导致结果:
- 提供了一个更具描述性的名称,有助于理解对象所代表的内容。
14. diff
- 显示提交、提交和工作树等之间的更改
-
解释:
diff
命令用于显示提交、提交和工作树等之间的更改。
-
使用方式:
git diff [<commit>]
-
导致结果:
- 显示不同提交或提交与工作树之间的差异。
15. fetch
- 从另一个仓库下载对象和引用
-
解释:
fetch
命令用于从另一个仓库下载对象和引用。
-
使用方式:
git fetch <remote>
-
导致结果:
- 从远程仓库获取了新的对象和引用,但不合并到当前分支。
16. format-patch
- 为电子邮件提交准备补丁
-
解释:
format-patch
命令用于为电子邮件提交准备补丁。
-
使用方式:
git format-patch <start-point>..<end-point>
-
导致结果:
- 生成一个或多个补丁文件,用于通过电子邮件提交更改。
17. gc
- 清理不必要的文件并优化本地仓库
- 解释: 清理不必要的文件并优化本地 Git 仓库。
- 使用方式:
git gc
- 导致结果: 清理不必要的文件,优化存储结构,提高本地仓库性能。
18. gitk
- Git 仓库浏览器
- 解释: Git 仓库的图形化浏览器。
- 使用方式:
gitk
- 导致结果: 打开图形化的 Git 仓库浏览器,可视化查看仓库的提交历史和分支结构。
19. grep
- 打印匹配模式的行
- 解释: 打印匹配指定模式的行。
- 使用方式:
git grep <pattern>
- 导致结果: 显示包含匹配模式的文件和行,用于搜索仓库中的特定文本。
20. gui
- Git 的便携式图形界面
- 解释: Git 的便携式图形用户界面。
- 使用方式:
git gui
- 导致结果: 打开 Git 图形界面,提供可视化的 Git 操作界面。
21. init
- 创建一个空的 Git 仓库或重新初始化现有仓库
- 解释: 创建一个空的 Git 仓库或重新初始化现有仓库。
- 使用方式:
git init
- 导致结果: 在当前目录中创建一个新的 Git 仓库或重新初始化现有仓库。
22. log
- 显示提交日志
- 解释: 显示提交的日志。
- 使用方式:
git log
- 导致结果: 显示当前分支的提交历史,包括提交者、日期和提交消息。
23. maintenance
- 运行任务以优化 Git 仓库数据
- 解释: 运行任务以优化 Git 仓库数据。
- 使用方式:
git maintenance run
- 导致结果: 运行维护任务,优化 Git 仓库的性能和存储。
24. merge
- 合并两个或多个开发历史
- 解释: 合并两个或多个开发历史。
- 使用方式:
git merge <branch-name>
- 导致结果: 将指定分支的变更合并到当前分支,创建一个新的合并提交。
25. mv
- 移动或重命名文件、目录或符号链接
- 解释: 移动或重命名文件、目录或符号链接。
- 使用方式:
git mv <source> <destination>
- 导致结果: 将指定源文件或目录移动或重命名为目标位置。
26. notes
- 添加或查看对象注释
- 解释: 添加或查看对象的注释。
- 使用方式:
git notes <subcommand>
- 导致结果: 添加注释或查看已有注释,用于关联额外的信息到 Git 对象上。
27. pull
- 从另一个仓库或本地分支获取并合并
- 解释: 从另一个仓库或本地分支获取并合并。
- 使用方式:
git pull <remote> <branch>
- 导致结果: 从指定远程仓库或本地分支获取变更,并将其合并到当前分支。
28. push
- 更新远程引用以及相关对象
- 解释: 更新远程引用以及相关对象。
- 使用方式:
git push <remote> <branch>
- 导致结果: 将本地分支的提交推送到指定的远程仓库,并更新远程引用。
29. range-diff
- 比较两个提交范围(例如分支的两个版本)
- 解释: 比较两个提交范围,比如比较分支的两个版本之间的差异。
- 使用方式:
git range-diff <commit-range>
- 导致结果: 显示两个提交范围之间的差异,帮助了解提交之间的具体变更。
30. rebase
- 在另一个基础上重新应用提交
- 解释: 在另一个基础上重新应用提交。
- 使用方式:
git rebase <base-tip>
- 导致结果: 将当前分支的提交移动到指定基础上,重新应用提交,以便保持干净的提交历史。
31. reset
- 将当前 HEAD 重置为指定状态
- 解释: 将当前 HEAD 重置为指定状态。
- 使用方式:
git reset <commit>
- 导致结果: 将当前分支的 HEAD 重置为指定的提交,并根据选项将索引和工作树恢复到不同状态。
32. restore
- 恢复工作树中的文件
- 解释: 恢复工作树中的文件。
- 使用方式:
git restore <file>
- 导致结果: 恢复指定文件到最新提交状态或指定提交状态,覆盖当前工作区的更改。
33. revert
- 撤销现有的一些提交
- 解释: 撤销现有的一些提交。
- 使用方式:
git revert <commit>
- 导致结果: 创建新的提交来撤销特定提交引入的更改,保留提交历史的完整性。
34. rm
- 从工作树和索引中移除文件
- 解释: 从工作树和索引中移除文件。
- 使用方式:
git rm <file>
- 导致结果: 从 Git 的跟踪列表中移除指定文件,即将文件从版本控制中删除。
35. scalar
- 用于管理大型 Git 仓库的工具
- 解释: 用于管理大型 Git 仓库的工具。
- 使用方式:
git scalar <command>
- 导致结果: 提供管理大型 Git 仓库所需的工具和操作。
36. shortlog
- 摘要显示 ‘git log’ 输出
- 解释: 摘要显示 ‘git log’ 输出。
- 使用方式:
git shortlog
- 导致结果: 按提交者分组显示提交消息的简要日志,用于生成摘要式的提交日志。
37. show
- 显示各种类型的对象
- 解释: 显示各种类型的对象。
- 使用方式:
git show <object>
- 导致结果: 显示提交、标签、树对象等的详细信息。
38. sparse-checkout
- 将工作树减少为跟踪文件的子集
- 解释: 将工作树减少为跟踪文件的子集。
- 使用方式:
git sparse-checkout [<subcommand>]
- 导致结果: 允许将工作树限制为仅包含指定的跟踪文件,有助于减少检出的文件数量。
39. stash
- 将脏工作目录中的更改隐藏起来
- 解释: 将脏工作目录中的更改隐藏起来。
- 使用方式:
git stash
- 导致结果: 将未提交的更改暂存起来,以便稍后可以在干净的工作目录中继续工作。
40. status
- 显示工作树的状态
- 解释: 显示工作树的状态。
- 使用方式:
git status
- 导致结果: 显示工作区和暂存区文件的状态信息,包括已修改、已暂存和未跟踪的文件。
41. submodule
- 初始化、更新或检查子模块
- 解释: 初始化、更新或检查子模块。
- 使用方式:
git submodule <command>
- 导致结果: 允许初始化、更新或查看子模块的状态,将其他 Git 仓库作为项目中的子目录。
42. switch
- 切换分支
- 解释: 切换分支。
- 使用方式:
git switch <branch-name>
- 导致结果: 切换到指定的分支,使工作区和索引与目标分支一致。
43. tag
- 创建、列出、删除或验证使用 GPG 签名的标签对象
- 解释: 创建、列出、删除或验证使用 GPG 签名的标签对象。
- 使用方式:
git tag [<options>]
- 导致结果: 允许用户创建、列出、删除和验证 Git 仓库中的标签对象,并使用 GPG 签名验证标签。
44. worktree
- 管理多个工作树
- 解释: 管理多个工作树。
- 使用方式:
git worktree <subcommand>
- 导致结果: 允许创建、列出、删除和管理多个关联到同一个仓库的工作树,每个工作树可处于不同分支或状态。