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