Я знаю, что "git add [file(s)]", позволяет git отслеживать (контроль версий) указанный список файлов. Но, похоже, мы могли бы использовать ту же команду вместо «git stage [file(s)]», которая добавляет файл (ы) в список назначенных файлов для следующей фиксации (снимок). Так в чем же технические различия между функциональностью "git add" и "git stage"? Неразумно думать об этих двух как о git-идентичных опциях / командах или рассматривать "этап" как избыточный или ненужный.

Заранее большое спасибо за любые разъяснения.

1 ответ1

0

Там нет ни одного. Как сказано на странице руководства ,

GIT-STAGE(1)                      Git Manual                      GIT-STAGE(1)

NAME
       git-stage - Add file contents to the staging area

SYNOPSIS
       git stage args...

DESCRIPTION
       This is a synonym for git-add(1). Please refer to the documentation of
       that command.

GIT
       Part of the git(1) suite

Git 2.20.1                        12/15/2018                      GIT-STAGE(1)

Если вы посмотрите на исходный код - встроенный список команд в git.c - вы также увидите, что они отображаются на одну и ту же функцию и, следовательно, идентичны:

static struct cmd_struct commands[] = {
    { "add", cmd_add, RUN_SETUP | NEED_WORK_TREE },
    ...
    { "stage", cmd_add, RUN_SETUP | NEED_WORK_TREE },
    ...
};

(Вы также можете посмотреть на саму функцию cmd_add() и убедиться, что она не проверяет, по какому имени она была вызвана.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .