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

Best practice

  • записи
    2
  • коментарів
    76
  • переглядів
    4 088

Git и Opencart, для самых маленьких


stickpro

10 579 переглядів

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

image.png.dc1c98fa88f156daca06e60063f7f3eb.png

Для начала нам нужно установить git, так как я на сервере использую ubuntu я воспользуюсь командой, внимание git должен быть установле везде где вы работает с кодом, будь то это продакшен(боевой) сервер тестовый или локальный пк

apt install git

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

yum install git

На локальном пк можно под windows можно установить данных софт gitforwindows
Далее нам по хорошему зарегестрировать на одном из сервисов это может быть github или gitlab я использую в большей степени последний. С регистрацией там все просто.
Далее нам нужно создать новый репозиторий
image.png.249adadf7a904e7f873d7ffba417f52a.png

кликаем по New project
image.png.f0ee2673400c0903af1494abc8fcafce.png

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

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

Переходим в консоль, в моем случае это наш тестовый сервер и пишем последовательно 2 команды
image.png.26423aa5ef80c358a5a7e2e92a43dfc6.png
далее, так как у нас уже развернут opencart первый вариант который предлагает нам gitlab не подходит, нам больше подходит второй варинат. Но все по порядку для начала перйдем в папку с нашим проектом

cd /path/to/you/site

итак мы в корневой дирректории нашего сайта теперь мы проинициализируем git командой
 

git init

gttиimage.png.b1a422064d6a007594fa3ad364781b27.png
Далее можем сразу указать удаленный репозиторий как нам и предалагает gitlab
image.png.929d99ac80ee036b69e9ab369beddda1.png

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

Далее нам нужно добавть содержимое рабочей директории в индекс (staging area) для последующего коммита.

git add .

пишем команду  чтобы все файлы добавить в индекс
ну и сделаем наш первый комит


git commit -m "Initial commit"

Готово теперь у нас есть комит можем его залить на удаленный репозиторий

git push -u origin master

image.png.cc85db85bf5384a7c9cbdb7d41596e44.png

но при попытке запушить, возникает ошибка,  а все потому что мы не настроили общение gitlab и нашего сервера по ssh ключам, сейчас мы это исправим
Для начала нам нужно сгененрировать ssh ключ на сервере командой предварительно заменив email на свой

ssh-keygen -t rsa -b 4096 -C "[email protected]"

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

cat ~/.ssh/id_rsa.pub 

ну собственно куда ssh-keygen его и сгенерировал.


Копируем наш ключ и идем в gitlab setting > ssh
image.png.e2b2ed31d758550c07007b11eec18d9a.pngimage.thumb.png.e75f1941bf3660f055c2ced38a106b91.png

Добавляем наш ключик и делаем заново команду
 

git push -u origin master   


image.png.0bc0140f8a034c89554fe42fc09b9db8.png

и вуаля мы залили наш проект на сайт
image.thumb.png.bfc9b86f38ff31823280943a55200d3a.png
 

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

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


image.png.81e3164196de8e9cf69f4f175468dfd7.png

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

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

image.thumb.png.f94b49e756fedb2c116dcb3038efb745.png
 

Назвать ишью лучше по порядку начиная с #1 #2 .... #90000 это удобно для самого gitlab чтобы закрыть ишью будет достаточно последний комит назвать "Close #issue" c числами же это проще всего.
Итак ишью создано теперь я как разработчик клонирую репозиторий к себе не локальный пк командой

git clone [email protected]:stick.qwe/opencart.git

где ссылка на наш репозиторий
image.png.3b9e68bb86461f349ce6857034d50423.png


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

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

1811765334_imgur-2020_05_11-171355.png.2718033cf684a7733616f0abb4a73692.png
далее нам нужно создать новую ветку с названием нашего issue

810434286_imgur-2020_05_11-171458.png.787addd16165b39c0c179d364cb19bdc.png


image.png.2a98557b0a0fa1be7efbc2a59ccf7fe0.png
отсавляем галочку на checkout branch
в правом нижнем углу у нас нужная нам ветка сделанная из dev ветки
image.png.62c510d88f3b5c18996156aea6952b5b.png
начинаем выполнять нашу работу
итак мы выполнили один пункт нашей задачи
image.png.4dc15e34658494b83350fee45f569c07.png

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

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

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


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

image.thumb.png.540dd49acfaf82cd7f65d92dabd0124a.png

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

image.png.fec7920f6d26626474f70ab69822c568.png

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

 

мы видим что содалась новая ветка нашего разработчика image.thumb.png.9b52e9128aa697a8329dc33f79c91895.png

 

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

для этого нам нужно создать merge request
image.thumb.png.b5ae1aff093ad0e7b08610b865d904d6.png

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

 

image.png.b4da13d76f3bd4715a404859eab7d022.png

и меняем target branch на dev
image.thumb.png.0c66334c36b064ea9fc58b0e348da2bc.png

 

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

далее нажимаем merge
image.thumb.png.ab704b0a12fdf8b07bbd0fd3162be422.png


так же не забываем закрывать наше issue кнопкой close issue
image.png.105e2d085757686b23a6c6e8461ff2e4.png

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

image.png.e97c2701896d53207305fef9e1ff62d0.png

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


merge request прошел успешно теперь у нас осталались 2 ветки с измененым кодом и нашими новыми коммитами image.thumb.png.514fdc1d2ef7dfca561116432299c2dc.png


далее мы идем на наш продакшен сервер переходим в папку с проектом и выполняем одну команду.
 

git pull

image.png.32a200eb46ee008052378ddfb405f8bc.png
 

видим что  наши файлы обновились проверяем в браузере
image.thumb.png.c418cde38df1e8c632bc28496313f84d.png

 

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

git checkout dev

 

и так же сделать git pull.

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

 

  • +1 21

49 коментарів


Recommended Comments



14 часов назад, buslikdrev сказал:

Добавьте в начале описание для чего это, чтобы оценить нужно ли это.

что и для чего это постарался описать тут

 

Надіслати

Спасибо за инфу - ценный материал. а кто-то юзает atom с гит? Есть сложности в настройке.

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

Надіслати
В 14.05.2020 в 22:41, Pascha сказал:

...бла бла бла

Статья по делу для тех кто все еще редактирует проекты "на гарячую" по фтп. А у Паши весенне обострение горящего пердака.

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

@stickpro Лайк за статью
@Pascha Бамбалейло проходит мимо

Надіслати

Так же одна из полезных функций это сборка новых файлов, например мы разрабоатываем модуль, и руками не хотим собирать файлы в руками
git diff --name-status b8c5130f f60aa30b | awk '{ if ($1 != "D") print $2 }' | xargs git archive -o output.zip HEAD

git diff --name-status nameCommint1 nameCommint2 | awk '{ if ($1 != "D") print $2 }' | xargs git archive -o output.zip HEAD

где nameCommit1 первый коммит, например после установки opencart и nameCommint2 коследний коммит, гит соберет все новые файлы и запакует в архив, останется только написать модификатор, если модифицируются стандартные файлы

Надіслати

Для командной разработки, для постоянного проекта:

- ДА.

Для изменить пару строчек кода

- НЕТ.

Владелец магазина предложит мне склонировать его репо. + 1000 за трату времени и захламление моего пк.

Выводы делайте сами.

  • +1 1
Надіслати
13 минут назад, pimur сказал:

Для командной разработки, для постоянного проекта:

- ДА.

Для изменить пару строчек кода

- НЕТ.

Владелец магазина предложит мне склонировать его репо. + 1000 за трату времени и захламление моего пк.

Выводы делайте сами.

Если Ваша цель ежедневно править по 2 строчки на 10+ проектах, то и ежу понятно, что здесь git Вам не нужен. Но если брать проекты в разработку или на долгосрочную поддержку, то git жизненно необходим

Надіслати
34 минуты назад, Sha сказал:

Черепашка (под виндой) удобно, может кому поможет быстрее разобраться с git

Ну если брать с GUI то GitKraken или SourceTree тогда, Кракен мне по интерфейсу и удобству больше нравиться

Надіслати
5 минут назад, Waha сказал:

GitKraken

это вообще "мощь" стильно-модно-молодёжно) он разве не платный?
хотя мне как-то, черепашка больше приглянулась, когда текст лень набирать)))

 

на любителя, выбор есть.

 

5 минут назад, Waha сказал:

SourceTree

интересно.

Надіслати

В GitKraken насколько помню, основной экстаз все получают, когда drag-n-drop обнаруживают, после "штрашной" консоли)

Надіслати
2 часа назад, pimur сказал:

Владелец магазина предложит мне склонировать его репо. + 1000 за трату времени и захламление моего пк.

 

Вот об этом я и писал в соседнем топике

В 11.05.2020 в 03:34, dexion сказал:

И вроде как использование гита удорожает доработки.

Надіслати
10 часов назад, dexion сказал:

И вроде как использование гита удорожает доработки.

а сколько вы теряте, когда сайт лежит? Скупой платит дважды...

Надіслати

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

10 часов назад, dexion сказал:

И вроде как использование гита удорожает доработки.

Гит дает удобство в работе, гарантию сохранности данных, так сказать 100% бекап + git это безопасность, т.к FTP это дополнительная уязвимость на сервере,. И много разных вещей которые так трудно понять, простым обывателям.
Но  я уже писал ранее, если Вы только красить кнопки умеете, то вам гит не нужен, но если на проекте +1 человек, например на бекенде, то в этом случае нравиться вам или нет, но использовать git обязательно.
Единственно, что жалко, клиент часто не понимает зачем git.

ОФфтоп: С одной стороны исполнители сами проваливают цены ниже плинтуса, не хотят учиться и пользоваться новыми технологиями, это негативно сказывается в целом как на репутации движка, так и на финансах других исполнителей. Поэтому в долгой перспективе демпинг цен и безграмотность способны уничтожить любое дело.

Надіслати
1 минуту назад, Pascha сказал:

где лежит? зачем лежит? из за отсутствия Git? 

И как мы раньше жили то? Ужс.

 

Паша, гав гав или может конструктивно отвечать начнете?

Надіслати
1 минуту назад, Pascha сказал:

До тех пор пока в этой теме будут писать бред... я буду задавать неудобные вопросы... Имею полное право как пользователь форума.

Лично покрасил кнопок на порядка 400 сайтах на Опенкарт

Все таки читаете мои сообщения? Это был как раз мой вопрос, так и мой ответ на этот вопрос... ТС о таких "тонкостях" упорно умалчивает до сих пор, утверждая что и ни один ИМ на Опенкарт без Git не может существовать... теперь вот сплошь и рядом "ложатся" и без него не "поднимутся"...
Дальше что? Даже интересно.... Ждем новых открытий для себя.

Если работа над сайтом выходит за рамки, покраски кнопок, которые никак не могут вылететь в 500 на сервере, то я даже это работой не считаю, а по файкту если разрабатывается новый функционал, или вносятся доработки в старый, где приходится работать с php, а не только css как вы привыкли, то иной раз забываешь поставить ковычки или скобки, мы же не роботы, и все не застрахованы от ошибок, от этого сайт ложится в 500, а кто-то в это время например делал заказ, и все минус клиет, а если на сайте больше чем вы привыкли хостов намример 10 000? То в этот момент может отвалиться не один заказ. А так же в opencart нет удобного дебагера, как например telescope в laravel и приходится вардампить данные, а эта простыне мало кому нравится на сайте, ну если вас и ваших клиентов это устраивает, то делайте это же никак не возбраняется

Надіслати
57 минут назад, Pascha сказал:

Если Вы не умеете работать с Опенкарт, и у Вас в процессе доработок (я так понимаю и после) сайт "ложится", то это Ваши проблемы... 
Свое видение в каких случаях использование Git обосновано, в отличии от Вас, как ТС, я описал в предыдущих комментариях.... 
Просить Вас показать хоть что то... даже просто с перекрашенными кнопочками... без шаблонов и прочего... уже не интересно, потому как нет у Вас такого... 

 

Ай яй яй... совсем недавно кто то рвал пятую точку на британский флаг, что брать что то с других движков - пиратство.... к чему Вы призываете? Крамола!!! Не копируйте и не берите примеры из других движков!!!! Не ровен час удалят Вас с форума Опенкарт.... 

обратитесь к врачу, вы не в адекватном состоянии

Надіслати

А ведь @Pascha прав. Понятно дело гит удобен, он нужен и т.д и т.п Основной посыл был клиентам ну прям начать использовать. Только 90-98% он им не нужен.

Я лично на работе использовал ровно до момента, пока не уволили фронтендера. Все дальше мне он не нужен. Проект таков что щас я делаю одно. Прилетает руководитель и говорит. Срочно надо вот там одну фигулину сделать, срочно...

У меня на пк, phpstorm смотрит на сревер, так мне теперь что надо расказываать начальству что так не по феншую? Я к чему это все. Инструмент нужен когда он нужен, мы живем в неидеальном мире =)

Ну и не забываем что сервер тоже делает бекапы ежедневно.

  • +1 1
Надіслати
39 минут назад, Pascha сказал:

подскажите адресок... я так понимаю Вы его уже посетили и можете дать консультации к кому мне лучше обратиться... 
p.s. Я так понимаю, данным постом, Вы указываете на свое тогдашнее состояние здоровья, когда писали о "пиратстве решений с Битрикса" (которые в силу подтвержденной скринами разрешения на использование пиратством и не являлось)... 
Прекратите строить из себя "невинную овечку" или как минимум "склерозность". 
Вам уже не в одной теме предлагали доносить информацию точно в соответствии с назначением,  без фантазий и ни чем не подтвержденных "революционных заявлений" далеких от реальности (Вас читают в том числе новички и у них может сформироваться абсолютно неверное представление о назначении и использование тех или иных приблуд)... Либо назовитесь "диванным философом" и вопросов к Вам больше не будет. 


Во-первых копирование функционала с платного движка битрикс, да это пиратство, но Laravel и все его пакеты бесплатны, так как можно своровать то, что и так дают бесплатно?! Паша уже не отличает реальности от своей фантазии. Хватит флудить и пытаться притянуть ТС за что-то там.. Пост создан в обучающих целях, пусть таким и будет. Это явно не место, что бы выяснять отношения идите в ЛС

  • +1 1
Надіслати
3 минуты назад, pimur сказал:

А ведь @Pascha прав. Понятно дело гит удобен, он нужен и т.д и т.....

"В то время, как наши космические корабли бороздят просторы Вселенной... Когда весь мир использует GIT..."  За то что проект правится "на горячую" надо бить по рукам! Но Вам никто не запрещает продолжать "колхозить" и отрицать важность использования git.

Думаю нет смысла объяснять, не надо Вам - не используйте!

Надіслати
45 минут назад, Waha сказал:

В то время, как наши космические корабли

https://habr.com/ru/news/t/445282/

46 минут назад, Waha сказал:

Когда весь мир использует GIT...

А я что говорю не использую?

47 минут назад, Waha сказал:

За то что проект правится "на горячую" надо бить по рукам!

Объясните это руководству. Когда надо прям щас. И не надо мне расказывать как лучше. Я это понимаю, а еще понимаю что есть понятие у некоторых - бюджет, и небольшие правки. Я промолчу про установленные модули с привязкой к домену, да еще и с базой треш еще тот. Скачай отдельно залей. Опенкарт сам по себе не оч для гита, если только это не постоянный проект с которым работает(ют) постоянно одни и те-же, без сторонних вмещастельств. Если уж брать примеры с той же к примеру laravel. Которая из коробки нормально поддерживает работу с консолью и склонировав репу, вы парой команд получается 1в1 проект без танцев с бубном.

 

52 минуты назад, Waha сказал:

Но Вам никто не запрещает продолжать "колхозить" и отрицать важность использования git.

Еще раз я не отрицаю.

1 час назад, pimur сказал:

Основной посыл был клиентам ну прям начать использовать.

Вот.

Надіслати

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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