2013-09-30 7 views
0

Может кто-нибудь объяснить концепцию моментальных снимков в git. Я понимаю, какие данные могут быть сохранены в виде серии наборов изменений, но как это отличается от моментальных снимков в git. и почему так лучше?Git Snapshots, как они работают?

Основной рабочий Git выходит что-то вроде этого: (взято из мерзавца документации)

  1. Вы изменять файлы в рабочем каталоге.
  2. Вы создаете файлы, добавляя снимки из них в свою промежуточную область.
  3. Вы совершаете фиксацию, которая берет файлы так, как они находятся в промежуточной области, и сохраняет этот моментальный снимок навсегда в вашей директории Git.
+1

Возможный дубликат http://stackoverflow.com/questions/4964099/what-is-a-git-snapshot – Shunya

ответ

0

git commit objects - это, по сути, снимки, о которых вы говорите.

Каждое совершение в git представляет собой моментальный снимок (или состояние) всего дерева, как это было в этот момент времени. Другая фиксация делает другой снимок и так далее.

Вы всегда можете перемотать состояние всего дерева, выполнив проверку: git checkout commit_id - это почти как машина времени.

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

0

Я думаю, что документация очень плохая.

Вы знакомы с деревом работы, которое представляет собой только файлы, как вы их видите, промежуточная область или индекс как черновик, а окончательная фиксация - это моментальный снимок.

Смежные вопросы