Как Мерзавец является Распределенным Управлением исходным кодом?

Я - новичок Мерзавца с UNIX опыт Microsoft Visual SourceSafe и SCCS. Я просто изучаю Мерзавца, и это, кажется, имеет огромную и болезненную кривую обучения. Я уже видел, что Мерзавец сдувает все файлы данных, которые я не фиксировал, который касается меня. (Как утилита может удалить файлы данных без предупреждения, вне меня).

Linus Torvalds, в его видео на Мерзавце, утверждает, что Мерзавец распределяется, рекламирует преимущества распределения, но кроме всех имеющих копию (клон) источника, действительно не объясняет, как распределение работает.

Как Мерзавец помогает распределению? Как справка Мерзавца восстанавливает потерянные файлы? Как распределение Мерзавца работает? Я могу найти, где файлы были распределены? Существует ли учебное руководство по распределению Мерзавца?

Заранее спасибо!

7
задан PalaDolphin 2 March 2010 в 21:06
поделиться

4 ответа

Прочитайте это : http://www.newartisans.com/2008/04/git-from-the-bottom-up.html


Что касается других ваших вопросов :

Как работает Git?

Это не настолько конкретный вопрос, чтобы на него можно было ответить. Но в целом, Git работает путем создания объектов и размещения их в дереве. Объекты соответствуют изменениям, которые вы внесли в содержимое. Деревья сами являются объектами. Git отслеживает изменения, внесенные в содержимое хранилища.

Как работает распространение?

Поскольку все репозитории могут быть серверами, различные репозитории могут сравнивать свои деревья и объекты и определять, какие изменения произошли между текущим состоянием одного репозитория и другого. Таким образом, они могут отправлять в другие репозитории и забирать из них.

Как это может помочь?

Если вы не видите, как это может помочь вам, придерживайтесь MVSS.


Я думаю, что здесь может быть проблема со словарным запасом. Распространение - это не доставка. Распространение Git'а означает, что каждый репозиторий является сервером. Это не значит, что он будет отслеживать, куда его клонировали (хотя ваш собственный репозиторий может хранить список удаленных репозиториев, из которых можно брать/отправлять).

Прочитайте PDF, на который я дал ссылку. Затем создайте репозиторий на github, следуя их указаниям. Форкните чужой репозиторий, любой, просто чтобы посмотреть, как это работает.

3
ответ дан 7 December 2019 в 16:41
поделиться

Git и Mercurial оба следуют очень похожим схемам работы с распределенной природой SCM. Я не могу сказать о хороших учебниках по Git, но есть несколько отличных работ по Mercurial.

Understanding Mercurial - Здесь есть хорошая информация по вопросу, который вы задаете... что значит быть распределенным?

Mercurial Book - Для более глубоких исследований.

1
ответ дан 7 December 2019 в 16:41
поделиться

Git и другие DVCS, по сути, "приносят" пользователю весь репозиторий. Когда у меня есть рабочая копия git, у меня также есть весь репозиторий локально на моем жестком диске. Никто другой не имеет к нему доступа, но я могу поделиться им с помощью различных инструментов и методов, предоставляемых системой git.

В других системах, таких как SVN (о которой Линус упоминает в видео), весь репозиторий находится на одном сервере. Все толкают и тянут с этого сервера.

Опять же, если рассматривать git, мои коммиты изолированы на моем компьютере. Когда я готов к тому, что они могут быть доступны другим, я "публикую" свои дополнения каким-либо способом - возможно, на центральном сервере типа SVN, но это только один из вариантов. Я могу послать вам свои изменения по электронной почте.

Предотвращение потери данных

Одна из перспектив предотвращения потери данных заключается в том, что если у меня есть копия всего репозитория, а у вас - копия всего репозитория, то если кто-то из нас потеряет свой жесткий диск, мы сможем повторно клонировать репозиторий. Конечно, это предполагает, что мы обмениваемся нашими достижениями и работаем над общей целью.

Сравните это с SVN (или другими центральными репозиториями), если вы потеряете жесткий диск сервера, вам придется восстанавливать репозиторий из последней резервной копии если у вас есть резервная копия. Это означает, что кто-то должен управлять сервером и следить за тем, чтобы резервные копии выполнялись и т.д. DVCS, в некотором смысле, делает это по своей природе.

Конечно, существует также "потеря данных" от таких ошибок, как случайное удаление файлов, но это относится ко всем VCS.

1
ответ дан 7 December 2019 в 16:41
поделиться

Вы, вероятно, перешли на другую ветку. Запустите git branch , чтобы увидеть, какие у вас есть ветки, затем git co .

Лично я ненавижу мерзавца. Большая кривая обучения и необычный интерфейс командной строки. Но сейчас это лучший выбор. Так что наслаждайтесь! Ах да, не изучайте VSS, если у вас тоже нет, вы получите ДЕЙСТВИТЕЛЬНО ДЕЙСТВИТЕЛЬНО вредные привычки. VSS - это все, чего не должно быть в системе управления версиями.

-2
ответ дан 7 December 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: