基础知识
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
学习完本教程以后,你应该掌握了git的全部用法的1%。
备注:
git reset
/git checkout
的详解在第4章。强烈推荐改用功能更强大更直观的git restore
和git switch
。为了更为本质地了解Git,本文会对同一种操作介绍多种不同的实现方法。 下表描述了不同使用场景下应该如何选择最适合的实现方法。
等级 | 含义 | 使用场景 |
Lv0 | 纯粹手工实现,完全不使用Git命令行 | 学习Git内部结构时 |
Lv1 | 使用底层Git命令行配合手工实现 | 实现极为特殊的Git操作时 |
Lv2 | 使用底层Git命令行实现 | 实现非常规Git操作时 |
Lv3 | 使用常规Git命令行实现 | 日常使用 |
Lv4 | Git Alias | 对Git进行扩展,日常使用 |
Lv5 | 编写脚本调用Git命令行 | 对Git进行非常规扩展,偶尔使用 |
- cwd默认为.,表示先cd到那里再运行后续命令
- work-tree默认为
GIT_WORK_TREE
或者.
,但并非所有命令都涉及worktree - git-dir默认为
GIT_DIR
或者./.git
:- 若./.git是目录,则就以该目录为repo
- 若./.git是文件,则以该文件内容(一般会是绝对路径)为repo
git [-C <cwd>] [--git-dir=<repo>] [--work-tree=<worktree>] <command> [args]
大部分命令的参数列表遵循以下格式:
- object是对象的表达式
- 一般由引用、对象SHA1、^、~、:等构成
- 完整列表参见
git rev-parse
(Lv2)
- path是路径
--
在不引起歧义的情况下可以省略
注意:是否存在
<path>
参数可能对语义有本质的影响git <command> [options] [<object>]
git <command> [options] [<object>] -- [<path>]
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
最近更新 2yr ago