04. Git File Types
Last updated
Was this helpful?
Last updated
Was this helpful?
После создания репозитория git начинает отслеживать файлы находящиеся в текущем каталоге. Каждый файл в вашем рабочем каталоге может находиться в одном из двух состояний: отслеживаемый git (tracked
) и неотслеживаемый git (untracked
).
Когда вы впервые клонируете репозиторий, все файлы будут отслеживаемыми и неизменёнными.
Отслеживаемые файлы — это те файлы, (1) которые или были уже ранее добавлены в git или (2) git-у указано их отслеживать, т.к. они войдут в следующий коммит. Исходя из этого, все отслеживаемые файлы делятся на:
unmodified
- не изменился c момента предыдущего коммита;
modified
- изменился, но еще не добавлен в выборку для коммита;
staged
- изменился или новый файл и был добавлен в выборку для коммита при помощи git add
.
Все файлы, отобранные для следующего коммита, находятся в индексе или на сцене (staging area
). Ранее индекс назывался кэшем, поскольку сцена кэширует файлы, которые войдут в следующий коммит.
Рабочей директорией (working directory
) называется текущая версия файлов с которой вы работаете (current checkout).
Команда git status
покажет все изменения в текущей рабочей директории. Предыдущий коммит хранит слепок прошлого состояния рабочей директории (history
).
Неотслеживаемые файлы — это любые файлы в вашем рабочем каталоге, которые не входили в ваш последний слепок состояния и не подготовлены к коммиту.
Созданные файлы
Сгенерированные файлы
Рабочая модель гит имеет следующий вид:
Гит отслеживает все файлы в рабочей директории, а история коммитов представляет историю её изменений.
Рабочая директория содержит текущую версию файлов.
Сцена представляет собой выборку файлов которые войдут в следующий коммит.
Следующие команды предназначены для копирования файлов между рабочей директорией, сценой и историей, представленной в форме коммитов:
Вы можете использовать git reset -p
, git checkout -p
, и git add -p
вместо имён файлов или вместе с ними, чтобы в интерактивном режиме выбирать, какие именно изменения будут скопированы.
For removing files from your tree, you can simply run: git rm <filename>
. This will remove that file from the index (and thus from the next commit) as well as from your working directory.
Команда rm
удаляет файл физически но не индексирует это изменение. Удаление файла нужно подтвердить git add .
.
Удаление файла только из индекса (физически он остается в директории):