Ответ 1
Снимок - это состояние чего-то (например, папки) в определенный момент времени. В этом случае моментальный снимок означает текущее содержимое тестовой ветки, это не должно быть главной ревизией.
Официальный Git doc говорит:
$ git diff test
Это покажет вам, что отличает ваш текущий рабочий каталог от моментального снимка на ветке 'test'
Как новичок, это очень запутанно. Я никогда не слышал о терминах моментального снимка. Они имеют в виду "HEAD" ветки "test"?
Снимок - это состояние чего-то (например, папки) в определенный момент времени. В этом случае моментальный снимок означает текущее содержимое тестовой ветки, это не должно быть главной ревизией.
Термин "моментальный снимок" используется также на ссылочном сайте git
Это заменяющий термин "Редакция". В других системах управления версиями изменения отдельных файлов отслеживаются и называются ревизиями, но с git вы отслеживаете всю рабочую область, поэтому для обозначения разницы используется термин "моментальный снимок".
От http://gitref.org/index.html
Вместо того, чтобы писать инструмент, каждый из которых поддерживает каждый файл отдельно, например Subversion, мы, вероятно, напишем файл, который упростит хранение моментальных снимков нашего проекта без необходимости копировать весь каталог каждый раз.
Это по существу то, что git. Вы сообщаете git, что хотите сохранить моментальный снимок вашего проекта с помощью команды git commit, и в основном записывает манифест о том, как выглядят все файлы в вашем проекте в этот момент. Затем большинство команд работают с этими манифестами, чтобы увидеть, как они отличаются или вытаскивают контент из них и т.д.
Если вы думаете о git как инструменте для хранения и сравнения и слияния снимков вашего проекта, может быть проще понять, что происходит и как правильно поступать.
Во-первых, это не официальная документация git. Это авторская книга. Хотя это, вероятно, довольно авторитетно, это не Евангелие.
AFAIK, "моментальный снимок" не имеет никакого формального значения в git. Конечно, git diff manpage не упоминает об этом. В данном контексте это, вероятно, неофициальная ссылка на то, как ветвь "тест" используется в примерах в книге, то есть в качестве моментальной копии текущей работы для целей тестирования.
Мое понимание заключается в том, что снимок в целом - это просто "сущность", которую использует git для хранения своих данных. В отличие от хранения своих данных в виде серии "дельта" /наборов изменений, таких как SVN, например, каждая фиксация, которую вы делаете с помощью git, создает "объект фиксации", который ссылается на моментальный снимок того, как выглядел код в этой точке вовремя.
Так как @Femaref говорит, что это состояние кода в определенное время и не обязательно означает, что он является главой тестовой ветки, но может быть в примере, который вы видели.
Снимок относится к репозиторию, так как скриншот относится к видео.
Репозиторий Git состоит из серии снимков, которые представляют собой набор файлов и папок, представленных деревом-объектом Git, хранящимся в папке репозитория .git
. Когда вы commit
, вы сохраняете текущий рабочий каталог как новый снимок (фиксация).
Ниже приведены некоторые из контекстов, в которых используется термин моментальный снимок: