Я хотел бы знать, как работает git-receive-pack, потому что я совершенно не понимаю, что с ним происходит. Может ли кто-нибудь пролить свет на эту тайну?
Как работает git -receive-pack?
Ответ 1
Согласно странице руководства:
http://schacon.github.com/git/git-receive-pack.html
Эта команда обычно не вызывается непосредственно конечным пользователем. Пользовательский интерфейс для протокола находится на стороне git send-pack, а пара программ предназначена для использования обновлений для удаленного репозитория. Для операций выталкивания см. git -fetch-pack (1).
Команда позволяет создавать и ускорять пересылку sha1 refs (head/tags) на удаленном конце (строго говоря, это локальный конец git -receive-pack работает, но для пользователя, который сидит на конец пакета отправки, он обновляет пульт. Confused?)
Даже человек, пишущий справочную страницу, думает, что это сбивает с толку, поэтому не обвиняйте себя в этом, вы этого не понимаете!
В основном, это часть кода, который получает фиксации на удаленном сервере, которые были упакованы и отправлены send-pack
на вашем локальном компьютере, когда вы выполняете git push
.
Не важно понимать особенности, стоящие за ним - как говорят документы, это не команда, которую вы должны когда-либо набирать.
Если вы действительно глубоко заинтересованы в том, как он работает внутри страны, можно создать несколько хороших мест:
Страница Википедии на git (Software), Веб-сайт git или Бесплатная книга, Pro Git
Или вы всегда можете пойти посмотреть код 'c' для этой команды в исходном коде прямо здесь, на github.
Ответ 2
Существует довольно подробная документация протокола приема пакета в хранилище git. Вы можете увидеть его здесь https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt.