Страницы

Поиск по вопросам

воскресенье, 15 марта 2020 г.

Какие изменения происходят на удаленном сервере при git push?

#git #git_push #git_remote


Если я делаю push из локального репозитория в удаленный, то на удаленном файл полностью
изменяется на локальный? Или они сначала сравниваются и заливаются только изменения?
    


Ответы

Ответ 1



Git оперирует не файлами, а коммитами. Коммит — это «снимок» текущего состояния рабочей области. Он содержит полные версии файлов, а не изменения (также называемые дельтами или патчами). Подробнее о коммитах: Каким образом git сохраняет изменившуюся строку при коммите? Или они сначала сравниваются и заливаются только изменения? Отчасти вы правы: они действительно сначала сравниваются. Для сравнения файлов используется алгоритм Secure Hash Algorithm. Когда вы заливаете (push) очередные коммиты на удаленный сервер, Git сравнивает значение sha1 для каждого объекта. Если в его истории уже есть объект для этого значения, то повторно закачиваться он не будет. Если нет — то будет закачана полная версия этого файла, а точнее, содержащий его объект типа blob. на удаленном файл Как уже отметил alexander barakin, ваш удаленный сервер скорее всего типа bare, то есть не содержит файлов в рабочей области (а только внутренние файлы Git-репозитория).

Ответ 2



удалённый репозиторий — скорее всего — bare-репозиторий («голый»), т.е. возле него нет рабочего каталога (working directory), и, соответственно, никаких файлов, которые вы наблюдаете в своём рабочем каталоге. чтобы было понятней: в удалённом репозитории хранится практически то же, что и у вас в каталоге .git возле содержимого вашего рабочего каталога. а это, собственно, и есть git-репозиторий. исходя из вышеизложенного, надеюсь, становится понятно, что вопрос в текущей формулировке просто лишён смысла.

Комментариев нет:

Отправить комментарий