Ответы пользователя по тегу Git
  • Как работать с develop и master?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Или вот на русском - https://danielkummer.github.io/git-flow-cheatsheet...

    Если не подходит - придумывайте свою схему, никто не знает Ваших потребностей лучше Вас
    Ответ написан
    Комментировать
  • Какой обучающий курс пройти по деплою, CI и совместной разработке?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Нет таких курсов.

    Потому что волшебной палочки нет, каждый проект +\- уникален по своему и серебрянной пули нет. Ищите профи, платите им - и будем Вам порядок.

    Альтернатива, изучайте практики и думайте как их применить у себя.
    Ответ написан
    1 комментарий
  • Не заводится ssh ( Permission denied (publickey) )?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Открытый ключ на bitbucket загрузил?
    git знает где у тебя ключ лежит? (если ключи названы не по умолчанию)
    Права на ключ и его директорию правильные? (должны быть 400)
    Ответ написан
  • Где коммитим обновления плагинов WP при использовании git flow?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Вынес в отдельную ветку, обновил, проверил смержил.

    Ветки называй как тебе удобно :)

    Я называл maintance
    Ответ написан
  • Хук post-receive на сервере c gitolite выдаёт ошибку - есть идеи что нужно подправить в нём?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    1) Как сделать перенос - сделать CI сервер. Явно проще и нагляднее

    2) Ошибки вцелом не видно, этот скрипт точно запускается на тестовом сервере, а не на сервере с gitolite? (если это разные сервера)
    Ответ написан
    Комментировать
  • Клонирование репозитория только с использованием .pub файла?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    TL; DR - Никак.

    Люди с той стороны упоролись веществами, причем такими, что мне интересно. И вот почему:

    Краткий экскурс в криптографию. Есть симметричное шифрование - это когда данные можно зашифровать и расшифровать один и тем же ключем. Этот случай нас не интересует.
    Нас интересует асимметричное шифрование. В чем же оно заключается? В том, что есть два ключа - публичный (он же иногда называется открытым) и приватный (называется закрытым). Публичным ключем, можно зашифровать данные и только зашифровать. Приватным же ключем - можно только расшифровать данные. Это математика и это круто (читай про RSA если интересно как так получается). Цимес в том, что из открытого ключа никаким образом нельзя получить закрытый. На современных аппаратных мощностях. Даже в теории.

    Так вот, все это дело нужно, чтобы по незащищенному каналу связи (интернет) передать ОТКРЫТЫЙ ключ другой стороне, другая сторона этим ключем шифует данные и возвращает нам уже в зашифрованном виде. А мы, имя закрытый ключ - расшифровываем эти данные. Приватный ключ не покидает наш компьютер и недоступен кому-то кто может перехватывать весь траффик.

    Как работает идентификация по открытому ключу (в общем случае) в репозиториях

    - Ты передаешь репозиторию свой ОТКРЫТЫЙ ключ
    - Репозиторий зашифровывает этим ключем сообщение типа "Число 235823598712409, зашифруй его вот этим ключем <тут ключ> и верни мне"
    - Ты расшифровываешь сообщение, шифруешь его полученным ключем и отдаешь назад.
    - Репозиторий смотрит, правильно ли пришел ответ и если да - то уже идет обмен данными, так как у Вас обоих есть открыте ключи шифрования друг друга.

    Все это естественно происходит автоматически, делать ничего руками не надо :)

    Так вот, для успешной работы тебе нужны ОБА ключа.
    Потому сгенерируй новую пару ключей и отдай админам репозитория свой .pub ключ.

    И передай им что они наркоманы
    Ответ написан
    Комментировать
  • Как провести сборку и развертывание Django приложения?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Ваша задача сводится к простой вещи - как правильно деплоить код на продакшен.

    Делается это очень просто:
    - Просто клонируем код на продакшен
    - Ставим зависимости (и все остальное)
    - Удаляем все, чего не должно быть на продакшене - gulpfile.js, package.json, bower.json, .bowerrc и конечно же директорию .git.

    Дальше начинаются варианты:
    - Не далять директорию .git, а создать для prod окружения отдельный ключ, который имеет доступ только к prod ветке репозитория. Для увеличения секурности - можно еще открывать репозиторий для продакшена только перед деплоем и закрывать после деплоя.
    - Использовать Docker. Просто собираем контейнер где-то еще, удаляем из контейнера все лишнее и после деплоим сам контейнер в продакшен.

    Вариант с Docker является самым популярным сейчас и имеет огромный плюс - вы собираете образ с Django кодом, этот образ передаете на тестирование и после тестирования этот же образ уходит в продакшен. Это позоляет избегать ошибок, не найденных из-за различия тестового и продакшен окружений. Однако есть много особенностей сборки Docker контейнеров - будет правильным в начале изучить Best Practice, чтобы понять, что можно применить в Вашем случае.

    Чтобы не делать все руками, имеет смысл этот процесс автоматизировать - для вас есть огромное количество инструментов - CI сервера (тот же Jenkins или web аналоги) и средства автоматизации для деплоя - ansible, salt-stack, puppet, chef. Как показывает практика - ansible один из самых простых.
    Ответ написан
    2 комментария
  • Синхронизация git репозитория сразу в два места. Как?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Да, либо Вы можете добавить еще один репозиторий и делать push сразу в оба
    Ответ написан
  • Как сделать git pull исключая обновления определенных файлов?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Используй ключ --assume-unchanged, подробнее в мане про git-pull
    Ответ написан
    1 комментарий
  • Git: Скрипты извлекающие статистику работы над проектом?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Готового я думаю нет, но есть модуль позволяющий сделать подобное:

    www.pygit2.org/log.html#commit-log
    Ответ написан
    Комментировать
  • Как клонировать репозиторий гита без каталога .git?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Хватит разврата, откопайте стюардессу.

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

    Если же душа прости странного и стюардессу не хочется откапывать, можно просто перенести репозиторий в новый проект вот так:

    # Клонируем исходный репозиторий без рабочего каталога (--bare)
    git clone --bare https://github.com/exampleuser/old-repository.git
     
    cd old-repository.git
    # Делаем mirror-push(будут скопированы все ветки и тэги) в новый репозиторий
    git push --mirror https://github.com/exampleuser/new-repository.git
     
    cd ..
    # Удаляем папку с репозиторием
    rm -rf old-repository.git


    Однако тут идут по факту лишние движения.
    Ответ написан
    Комментировать