Ответы пользователя по тегу Git
  • Как организовать синхронизацию локальной копии кода между разными машинами (между коммитами)?

    @miksir
    IT
    Да, есть вариант научиться пользоваться гитом и начать использовать его для разработки, а не для "защиты от вредоносов"
    Ответ написан
    22 комментария
  • Чем SVN лучше Git?

    @miksir
    IT
    Основные отличия - гита от svn - распределенность и хорошая поддержка ветвлений в разработке (ветки).

    SVN, конечно же, поддерживает ветки, но при сложных ветвлениях (ветки мержатся между собой) случаются неожиданные конфликты и т.п. Хотя, если у вас классическая схема - фича-ветка от мастера (транка) и обратный мердж в мастер (транк) - разница почти незаметна.

    Про распределенность: у SVN центральный сервер, у гита - граф серверов, хотя 99% процентов разработчиков используют локальный репо + один удаленный, т.е. по сути - тот же центральный сервер. Зато, так как репа локальная, гит очень быстр в переключении веток.

    Есть еще куча различий и, как плюсов, так и минусов у каждого ПО. Хотя сегодня SVN все реже и реже можно встретить, но в общем для многих рабочих групп его вполне достаточно для полноценной работы. С другой стороны - знать git тоже обязательно сегодня, ибо почти стандарт ;)

    Если вот так на первый взгляд поискать "чем svn лучше"...
    • работа с бинарными файлами, и быстрее и есть централизованные локи по репозиторию (что важно, ибо мердж бинарного файла обычно не очень эффективен);
    • есть система управления доступом вплоть до веток;
    • комит определенного юзера этим юзером и подписан, тогда как в гите аутентификация и поле автора не связаны никак (впрочем, последние две проблемы можно пофиксить хуками);
    • порядок комитов явный, т.е. есть глобальный счетчик с номером у каждого комита, хотя, конечно, не так принципиально;
    • частичный чекаут, т.е. начиная с любого узла SVN, удобно, если много мелких проектов - не нужно несколько репозиториев, просто один с папками проектов в корне


    Но я бы не стал говорить, что svn нормальный, а git нет. Просто он другой и со своими тараканами. Сам долгое время работал на SVN, потом потихоньку перебрались на git в основном из-за подводных камней сложного ветвления.
    Ответ написан
    Комментировать
  • Как правильно сделать свой сервер GIT?

    @miksir
    IT
    1. git сервер, можно взять saas решения (гитхаб, гитлаб и т.п.) или сделать свой (самое простое - просто ssh доступ к серверу и сделанный там git init --bare)
    2. git clone на dev сервере
    3. Хук post-receive на git сервере, который сходит по ssh на dev сервер и сделает там git pull. В случае гитхаб и т.п. - смотреть их вебхуки и т.п. - и по их вызову уже делать git pull). Конечно, всякие миграции и прочее придется исполнять руками. Или брать системы деплоя уже и использовать их.
    Ответ написан
    Комментировать
  • Как использовать несколько ключей одного сервера в git?

    @miksir
    IT
    Битбакет, равно как и гитхаб используют ключ для определения имени пользователя. По-этому, User при SSH коннекте в этим серверам всегда один - git. Т.е. нужно убрать User jobsearch (или заменить на User git, да и в первом случае можно поставить User git).
    Далее, что бы ssh выбрал разные ключи, при подсоединении нужно указывать не имя оригинального хоста, а имя алиаса хоста (тот, что в Host). Т.е. git clone host_h2:/... и git clone host_h1:/...., ну или git clone git@host_h2:/... и git clone git@host_h1:/.... если в конфиге убрали User.
    Ответ написан