Подтвердить что ты не робот

Концепция отслеживания git и git

Когда вы изменяете файл в своем рабочем каталоге, git говорит вам использовать "git add" для этапа.

Когда вы добавляете новый файл в рабочий каталог, git говорит вам использовать "git add" для начала отслеживания.

Я немного запутался в этих двух концепциях, потому что предположил, что отслеживание файла для изменений отличается от его размещения для фиксации

4b9b3361

Ответ 1

Git имеет понятие, известное как "индекс". Чтобы создать новый коммит, вы заполняете индекс содержимым, которое вы хотели бы иметь в следующем коммите. Это означает, что вы должны явно указать Git, какие изменения вы хотите отобразить в следующем коммите, используя git add. (git add -p добавить только отдельные куски)

Для Git не имеет значения, обновляете ли вы только файл ( "сценические изменения" ) или добавляете полный контент нового файла ( "начать отслеживание файла" ) - оба раза, все что Git index видит добавление новых изменений

Ответ 2

Git по существу имеет 4 основных статуса для файлов в вашем локальном репо:

  • untrecked: Файл новый, Git ничего не знает об этом. Если вы git add <file>, это будет:
  • поставлено: Теперь Git знает файл (отслеживается), но также делает его частью следующей команды commit (называемой индексом). Если вы git commit, это будет:
  • без изменений: Файл не изменился со времени последнего коммита. Если вы измените его, оно будет выглядеть следующим образом:
  • неустановлено: Изменено, но не является частью следующего фиксации. Вы можете выполнить его снова с помощью git add

Как вы можете видеть, git add будет отслеживать необработанные файлы и stage любой файл.

Кроме того: вы можете отформатировать файл с git rm --cached filename без указания файла и отключить поэтапный файл с помощью git reset HEAD <file>

Ответ 3

Когда вы добавляете файл для начала отслеживания, он также ставит его содержимое.

Если вы хотите добавить файл для отслеживания без его постановки, вы можете использовать

git add -N

Ответ 4

Оба из шагов git add, которые вы идентифицируете, делают практически одно и то же, они просто имеют разные объяснения из-за их маршрута прибытия.

git add просто сообщает git, что предоставленный файл - это файл, который вы хотите иметь в своей точной текущей форме (ее содержимом) в своем репозитории управления версиями. В этот момент git возьмет снимок файла (и он сохранит заметку в своем индексе), чтобы он был готов к тому, что все ваши изменения в ваших файлах были готовы и добавлены (т.е. объединены в промежуточной области), для вашего git commit (с соответствующим сообщением; -).

Как только git рассказывается об этом файле (например, @avh -N), он будет замечать (отслеживать) изменения в файле под видом различных команд (например, git status). Таким образом, позже вы должны явно указать git, когда вы больше не хотите, чтобы файл отслеживался (git rm <file>), и вы можете продолжить редактирование файла (локально) после того, как у вас есть add версия, которая будет в фиксации. Почти очевидно (или, возможно, нет), вы можете git add файл много раз, прежде чем совершить окончательную версию.