我知道“git add [file(s)]”可以让 git 跟踪(版本控制)指定的文件列表。但似乎我们可以使用相同的命令代替“git stage [file(s)]”,后者将文件添加到下一次提交(快照)的指定文件列表中。那么“git add”和“git stage”功能之间的技术差异是什么?将这两者视为与 git 相同的选项/命令或将“stage”视为冗余或不必要的选项/命令是不合理的。
在此先非常感谢您的澄清。
答案1
没有。因为手册页说,
GIT-STAGE(1) Git 手册 GIT-STAGE(1) 姓名 git-stage——将文件内容添加到暂存区 概要 git 阶段参数... 描述 这是 git-add(1)的同义词。请参阅文档 那个命令。 胃肠道疾病 git(1) 套件的一部分 Git 2.20.1 2018 年 12 月 15 日 GIT 阶段(1)
如果你看一下源代码——git.c 中的内置命令列表– 您还会看到它们映射到相同的函数,因此是相同的:
静态结构cmd_struct 命令[] = { { “添加”, cmd_add, RUN_SETUP | NEED_WORK_TREE }, ... { “阶段”, cmd_add, RUN_SETUP | NEED_WORK_TREE }, ... };
(您还可以查看cmd_add() 函数并验证它不会检查自己被调用的名称。)