Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

stickpro

Користувачі
  
  • Публікації

    699
  • З нами

  • Відвідування

Записи блогу, опубліковані користувачем 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 
     
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.