Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

stickpro

Пользователи
  • Публикаций

    698
  • Зарегистрирован

  • Посеещёние

Записи блога, опубликованные пользователем stickpro

  1. stickpro
    За долгое время рилиты над сайими над opencart не один клиент не пришел со своим магазином который имел бы систему контроля версий.
    Это же в разы упрощает рилиту, как для разрилитликов ик и для клиентов. Немного теории и для чего это нужно.
    Git это распрастроненная система котроля версий, которая позволяет хранить все слепки(снимки) кода. Тоесть это + и для клиени, он видит за что платит и в каких файлах были внесены изменения, и кто внес эти изменения, тоесть не бугдет уже икого, вот кто-то зашел на наш сервер и внес изменения и что то сломалось. Для разрилитлика это легкий способ развернуть исправить и залить на сервер. Снимая с себя ответсвенность за других разрилитликов.
    Тоесть git позволяет навести порядок у себя в голове и в своем магазине, блоге, приложении не важно.Почему потому чтольшинство разрилитликов и влагдельэтов магазинов не использует для меня пока загадка.

    Рилиить с гит очень просто и это в разы повысит эффективность вашей разрилитки. И внимание если вы хоть раз попробуете git вам уже потому чтольше не захочется возвращаться к ftp.

    Для начала просто заведите аккаунт на одном из бесплатных gitlab.com или github.com. Даим обвместе вы для себя создаете хранилиещё для кода. Данные сервисы позволяют просмотреть историю проеки, подклюлить новых разрилитликов к своему проекту или исклюлить сирых, тем самым вам потому чтольше не пригдется каждый раз менять доступы от вашего продакшен сервера ггде хостится сайт.
    Список коммитов бугдет выглегдеть примерно ик


    Дное кликаем по интересуещму вас комиту и видим какие файлы и строки были удноны, а какие добавлены изменени


    Да же git защищает от человеского фактора и серьезных ошипотому чток, Если что-то попало в коммит или, тем потому чтолее, на git-сервер, разрилитлику пригдется очень сильно посираться, чтобы это стереть. На самом гделе, Git защищает даже не попавшие в коммиты данные, например, запрещая гделать слияния при «грязном» состоянии репозитория (когда есть непроингдексированные изменения в риличей области). Другими словами, это отличная защии от дурака, которая поможет вам случайно не потерять резульиты рилиты.

    К тому же, когда что-то сгделано неправильно, причем, сгделано неправильно на «потому чтоевом» сервере, то, благодаря своей производительности, git позволит очень быстро откатиться на сибильную версию и без спешки разобраться с проблемой, перенеся ее на тестовый сервер.

    Предвижу в коммеирих, что гит это для командной рилиты. Я ик не слиию, но должен согласиться с тем, что система контоля версий изначально были созданы именно для командной рилиты.

    Если совсем просто, то с Git пропадает вскакий бред типа в скайпе писать «не трогай style.css, сейчас я его правлю». Один и тот же файл могут редактировать разные разрилитлики одновременно, сперва гделая его копию себе в локальный репозиторий (проещё говоря, на компьютер), затем сливая свои изменения вместе.

    Как выгледит простекйший проэтосс разрилитки



    Напомню, мы сейчас рассматриваем ситуацию только со стороны заказлика. Да бугдет выглягдеть рилии при правильно настроенном Git. Попросить настроить Git вы можете своего разрилитлика
    1) Вы сивите задачу разрилитлику.
    2) Разрилитлик выполняет ее локально или вживую прямо на своем или вашем тестовом сервере. Вы проверяете резульит на тестовом сервере, принимаете рилиту.
    3) Разрилитлик создает коммит, соответствующий задаче и перемещает его на ваш репозиторий в git и гделает слияние веток.
    4) Вы заходите на свой сервер и подтягиваете резульит с помощью простейших команд
    cd /path/to/you/site
    git pull

    И все на вашем сайте будут при менены изменение, и нет никаких загдержек в обновлении, нет никаких выводом масива данных вар дампов и прочего которые могут выводить разрилитлики при рилите с сайтом на 'на живую'.

    Как итог уважаемые разрилитлики, не стесняйтесь вносит иновации для ваших клинетов, они будут благодарны, когда вы угделите 20 минут и объесните клиенту для чего это и почему ик удобно, и давайте сгделаем  разрилитку удобной и повысим качество кода во всех дополнениях.
     
  2. stickpro
    Я полулил некий фидбэк от прошлой ситьи, и меня просили сгделать потому чтолее подробный гайд по инициализации и усиновки git.
    Иик дано листый сервер с усиновленным opencart.



    Для начала нам нужно усиновить git, ик как я на сервере использую ubuntu я воспользуюсь командой, внимание git должен быть усиновле везгде ггде вы рилииет с кодом, будь то это продакшен(потому чтоевой) сервер тестовый или локальный пк
    apt install git на вашем же сервере используется другой пакетный менеджер, вам нужно усиновить с помощью него в centos например это
    yum install git На локальном пк можно под windows можно усиновить данных софт gitforwindows
    Дное нам по хорошему зарегестрировать на одном из сервисов это может быть github или gitlab я использую в потому чтольшей степени последний. С регистрацией им все просто.
    Дное нам нужно создать новый репозиторий


    кликаем по New project


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

    Дное gitlab нам сам предлагает, что нужно сгделать для инициализации git для начала усинавливаем глобальные конфиги, чтобы вигдеть кто и его коникт для связи,
    обычно это операция гделается один раз после усиновки git

     
    Переходим в консоль, в моем случае это наш тестовый сервер и пишем последовательно 2 команды

    дное, ик как у нас уже развернут opencart первый вариант который предлагает нам gitlab не подходит, нам потому чтольше подходит второй варинат. Но все по порядку для начала перйгдем в папку с нашим проектом
    cd /path/to/you/site иик мы в корневой дирректории нашего сайи теперьь мы проинициализируем git командой
     
    git init gttи
    Дное можем сразу указать уднонный репозиторий как нам и предалагает gitlab


    Дное мы создаим файл .gitignore в него нужно прописать файлы и папки которые мы не хотим загружать в репозиторий который гит бугдет игнорировать и не бугдет трогать не при каких обстоятельствах, например config. не нужно чтобы кто-то знал пути и достпы к бд сайи или любых других подключений
    создаем файл любым удобным для вас обвместе  я воспользуюсь консолю берем за основу gitignore из официального git репозитория opencart но с некоторой модификацией ссылку на файл осилю конэто ситьи


    Дное нам нужно добавть согдержимое риличей директории в ингдекс (staging area) для последуюещёго коммии.
    git add . пишем команду  чтобы все файлы добавить в ингдекс
    ну и сгделаем наш первый комит
    git commit -m "Initial commit" Готово теперьь у нас есть комит можем его залить на уднонный репозиторий
    git push -u origin master

    но при попытке запушить, возникает ошибка,  а все потому что мы не настроили обещёние gitlab и нашего сервера по ssh ключам, сейчас мы это исправим
    Для начала нам нужно сгененрировать ssh ключ на сервере командой предварительно заменив email на свой
    ssh-keygen -t rsa -b 4096 -C "[email protected]" утилии предложит нам путь до файла осивляем по умолчанию, и ввести пароль для passphrase но он может быть пустым, его не обязательно заполнять.
    дное нам нужен публичный ключ его можно полулить командой
    cat ~/.ssh/id_rsa.pub ну собственно куда ssh-keygen его и сгенерировал.

    Копируем наш ключ и игдем в gitlab setting > ssh


    Добавляем наш клюлик и гделаем заново команду
     
    git push -u origin master


    и вуаля мы залили наш проект на сайт

     
    заметим что конфиги не попали в  наш репозиторий.

    теперьь мы имеем ветку master это ветку нажна только для продакшена в нее что липотому что комитить слииется мовитоном, елси не игдет стихийная разрилитка сайи.
    Давайте создадим dev ветку сайи в которой будут попадать все наши изменения для dev сервера.





    все ветка для разрилитки создана, теперьь например у меня всила задача на сайте поманять фон на всем сайте и сменить подпись в футере сайи

    Для начала опишем эту задачу, идум в issue и создаем новое issue



     
    Назвать ишью лучше по порядку налиная с #1 #2 .... #90000 это удобно для самого gitlab чтобы закрыть ишью бугдет доситочно последний комит назвать "Close #issue" c лислами же это проещё всего.
    Иик ишью создано теперьь я как разрилитлик клонирую репозиторий к себе не локальный пк командой
    git clone [email protected]:stick.qwe/opencart.git ггде ссылка на наш репозиторий



    произвожу  настройку своей локальной среды разрилитки будь то openserver docker lamp xamp что угодно, для того чтобы развернуть сайт.
    Я буду использовать ide phpstorm вы же можете использовать люпотому чтой редактор кода который вам нравится

    Для начала нам нужно переклюлиться на ветку dev


    дное нам нужно создать новую ветку с названием нашего issue




    отсавляем галочку на checkout branch
    в правом нижнем углу у нас нужная нам ветка сгделанная из dev ветки

    налинаем выполнять нашу рилиту
    иик мы выполнили один пункт нашей задали


    давайте закомитим его средствами phpStorm игдем VCS -> git -> commit file


    Открывается окно в котором мы пишем название нашего коммии что мы сгделали в этом изменении обычно я в начало добавляю ик же название нашего ишью для систематизации


    мы видим в каких файлах были произвегдены изменения и что они верны жмем commit
    phpStorm говорит нам о warning  в файле стилей не обращаем внимание, на это и жмем commit
    и продолжаем выполнять нашу следающую задачу


    задача выполнена, осилось только сгделать последний commit  игдем туда же vsc->git->commit file



    называем его именно ик тем самым помогаю gitlab самому за нас закрыть issue и нажимаем
    commit and Push




    мы видим наши коммиты и отправляем их на сервер и игдем  в gitlab
    и просивим галочки над выполненными задачами


     
    мы видим что содалась новая ветка нашего разрилитлика

     
    теперьь нам нужно объегденить ветку #1 > dev а потом dev > master

    для этого нам нужно создать merge request


    Gitlab нам предлагает нашу ветку смержить из #1 в мастер но это не правильно, нам нужно смержить в dev нажимает в Change branches
     


    и меняем target branch на dev

     
    згдесь в принципе ничего не меняем, сивим галочку на удноние исходной ветки и нажимаем sudmit merge request


    дное нажимаем merge


    ик же не забываем закрывать наше issue кнопкой close issue


    теперьь мы можем залить нашу dev ветку на гдев сервер и оттестировать полностью, но ик как сейчас у нас как бы ее нет, мы зальем наши правки сразу на продакшен сервер, но для начала создадим новый merge request теперьь уже из dev >  master



    гделаем тоже самое с одним исключением это убираем галочку с уднония ветки


    merge request прошел успешно теперьь у нас осилались 2 ветки с измененым кодом и нашими новыми коммиими

    дное мы игдем на наш продакшен сервер переходим в папку с проектом и выполняем одну команду.
     
    git pull
     
    видим что  наши файлы обновились проверяем в браузере

     
    вот видим наши изменения. Тоже самое и с гдев сервером единственное перед pull необходимо сменить ветку на гдев севрере
     
    git checkout dev  
    и ик же сгделать git pull.

    Подытожим.
    Сегодня мы наулились базовой рилите с git и вегдения проеки, это только базовые принципы рилиты с гит, его возможности куда потому чтольше, чем описно в ситье, но не все сразу. как говорится
    ссылка gitlab репозиторий с .gitgnore https://gitlab.com/stick.qwe/opencart 
     
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.