Jump to content
  • entries
    2
  • comments
    64
  • views
    302

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

stickpro

1,657 views

Я получил некий фидбэк от прошлой статьи, и меня просили сделать более подробный гайд по инициализации и установки 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 "your_email@example.com"

утилита предложит нам путь до файла оставляем по умолчанию, и ввести пароль для 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 git@gitlab.com: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 16


43 Comments


Recommended Comments



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

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

 

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

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

Share this comment


Link to comment
Pascha

Posted (edited)

Только что, stickpro сказал:

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

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

Edited by Pascha
  • +1 2

Share this comment


Link to comment

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

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

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

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

Share this comment


Link to comment
39 минут назад, Pascha сказал:

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


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

  • +1 1

Share this comment


Link to comment
3 минуты назад, pimur сказал:

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

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

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

Share this comment


Link to comment
45 минут назад, Waha сказал:

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

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

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

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

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

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

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

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

 

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

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

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

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

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

Вот.

Share this comment


Link to comment

@pimur все просто, у меня клиенты вот такого рода "Когда надо прям щас. И не надо мне расказывать как лучше" вероятно идут ******" к вам с пашей

Выдано предупреждение:
- нецензурные выражения
Наказание:

- ограничение публикаций

Share this comment


Link to comment
19 часов назад, Waha сказал:

@pimur все просто, у меня клиенты вот такого рода "Когда надо прям щас. И не надо мне расказывать как лучше" вероятно идут ***** к вам с пашей

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

Share this comment


Link to comment
19 часов назад, Waha сказал:

вероятно идут ****** к вам с пашей

я не против. говорите это чаще =)!

Share this comment


Link to comment
1 час назад, Pascha сказал:

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

Если говорить о хамстве, иными словами не неуважении к другому, то в отношении @Pascha  что бы начинать хамить, надо сначала уважать человека, а я не уважал его изначально. Поэтому мое поведение и отношение не менялось. Так что я ничего не начинал, а всего лишь продолжил.

Паша я уже много раз выше писал свое мнение. Если уровень Вашего интеллекта не позволяет интерпретировать текст, то нечего здесь писать о фактах и раздавать ярлыки, в своем блоге пишите мнения. Вот @pimur ответил конструктивно и к нему нет претензий, а Вы не уважаемый пустомолот, "собака лает - караван идет"

Share this comment


Link to comment
17 часов назад, pimur сказал:

я не против. говорите это чаще =)!

Ну если они будут довольны результатом после Вашей работы, то почему нет)) Это во благо мне, Вам и клиенту, а значит мир будет чуточку лучше.
А мое ироничное высказывание про ******* это не грубость, а всего лишь четкое лексическое подчеркивание смысла, что бы вся суть была понятна.

Почти всем хорошего настроения) у меня все.

Share this comment


Link to comment
1 минуту назад, Waha сказал:

что бы начинать хамить, надо сначала уважать человека

дык тема то о Git, при чем тут личная неприязнь? По делу и теме есть что сказать? 

если @stickpro явный новичок и неудачник и с ним и так все понятно, как и то что ни развития ни прогресса там не будет, то мы друг друга, @Waha, знаем ни один год, неужели люди готовы в угоду кому то так деградировать? Ты был самодостаточным челом, и мне с большой колокольни как ты ко мне относишься... дело в другом - ты человек который реально что то может и умеет как спец (и я к любому только с данной точки зрения и отношусь, отбрасывая свои личные амбиции)  и писать тут такой бред, прекрасно понимая что не прав и поддерживать то, что написано "левой ногою" .... ну это как то не профессионально... 

Share this comment


Link to comment
22 минуты назад, Pascha сказал:

... 

Считаю, что написано все очень неплохо, лично мне данная подача понравилась. Как Вы заметили, я не первый год здесь и наблюдал многое, сделал соответствующие выводы для себя. Поэтому могу вести себя так как мне хочется. Нравится это кому-то или нет.

Share this comment


Link to comment

@stickpro красавчик! Давно пора популяризовать адекватное владение сайтом среди их владельцев, а не FTP -> покрасил кнопочку -> забыл. Хотя это собственно и есть разделение между торгашами и предпринимателями.

 

@Pascha мне напоминает бурчащего дедушку - "а вот в наши годы и без гита справлялись и ничего..". Ну и работайте дальше без инструментов, если не надоело еще на цифре 10 (а у Вас это цифра 400) кнопочки красить, то это Ваш выбор. Вы продолжите красить кнопочки за 1$, если Вам это достаточно., а молодые разработчики почитают этот комментарий и пойдут учить новые инструменты, чтобы повысить свой скилл и стоимость времени.

 

@Pascha Если Вы достигли своего потолка в изучении технологий (принципально или по какому-то другому признаку), то это не повод отговаривать других от использования удобных инструментов разработки. А Ваши "неудобные вопросы" и вовсе неудобные.

 

Даже кнопочку покрасить - Issue, если Вы действительно дорожите своим магазином и он приносит Вам деньги.

Share this comment


Link to comment

@stickpro идея для следующей записи - это как поднять свой сервер на локалке, идентичный тому, что у кого-то на хостинге вертится.

Share this comment


Link to comment
Pascha

Posted (edited)

Только что, matroskin92 сказал:

 

спасибо за прекрасный не в тему блога отзыв обо мне. Видимо Вы очень много знаете о всех моих покрашенных кнопочках и моем потолке (кстати на нем глянцевые натяжные потолки сверкающий ночью звездами, которые были приобретены на деньги с покраски кнопок (как и 2-комнатные аппарты в Bavaro (Доминикана) сдача в аренду которых принесет мне еще 1-1.5К вечнозеленых в мой и без того нищенский бюджет, кнопки красить это Вам не полноценные сайты делать... в помощники не пойдете? (очень много кнопок... не справляюсь) ))))) 

Ну а кто сказал что ТС не красава? Я ж даже не спорю с Вами... наоборот даже поддерживаю целиком и полностью... 
Давно пора! Назрело! Модно! Современно! Должно быть на любом сайте на Опенкарт, иначе ошибка 500 - и "Вася не чешись"

Ну и пост в Вашу поддержку, естественно хотелось бы завершить цитатами "великих" от 20 мая текущего года (считайте меня летописцем этого человека, с которым мне посчасливилось жить в одно время):
pppp.png.84f7e22e4414bbbdba592df3b567bb5a.png
А Вам, @matroskin92?
А пользователей форума Вы так же воспринимаете? 

112.png.b4c59c3336869c693b94c8052a74b75f.png
Спасибо, что внимательно прочли мое сообщение. Мира Вам и процветания. Удачи во всех Ваших начинаниях и Git Вам в помощь.

 

P.s. В отличии от Вас я не пытаюсь развести тут срач и взаимное оскорбление... я пытаюсь вести конструктивный разговор и указываю на недочеты (не путать с неправильностью всего контента, а лишь подача, назначение описываемого и необходимость (когда, где и при каких условиях)

Edited by Pascha

Share this comment


Link to comment
11 минут назад, Pascha сказал:

А пользователей форума Вы так же воспринимаете? 

Обиженный? Ничем не могу помочь.

 

12 минут назад, Pascha сказал:

(как и 2-комнатные аппарты в Bavaro (Доминикана) сдача в аренду которых принесет мне еще 1-1.5К вечнозеленых в мой и без того нищенский бюджет

Инвестирование в недвижимость - это хорошо.

Share this comment


Link to comment
5 часов назад, matroskin92 сказал:

@stickpro идея для следующей записи - это как поднять свой сервер на локалке, идентичный тому, что у кого-то на хостинге вертится.

+1, в частности на маке.)

Share this comment


Link to comment

Guest
You are posting as a guest. If you have an account, please sign in.
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.