git add 和 git stage 之间有什么区别?

git add 和 git stage 之间有什么区别?

我知道“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() 函数并验证它不会检查自己被调用的名称。)

相关内容