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

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

stickpro

1,547 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



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

Share this comment


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

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

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

 

Share this comment


Link to comment

Отличный гайд, спасибо! Осталось разобраться на практике.)

  • +1 1

Share this comment


Link to comment

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

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

Share this comment


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

а кто-то юзает atom с гит?

 

Гит можно даже с notepad++ юзать

Share this comment


Link to comment
Pascha

Posted (edited)

Не украдено, не сфабриковано... просто скрин из одной из публичных групп про Опенкарт (то есть открытой для всеобщего обозрения и без приватности) в телеграмм
111.png.5e85da8c8126f7209f58c00656c5df03.png


(на правах рекламы) 
 

так вот у меня прочитав подобное возник вопрос: у нас на форуме так же и представители животного мира регаются? 
или просто ТС высказался о тех, кто читает его произведение "бывалого тыжпрограммизда"? 
Кто согласен с присвоенным ему эпитетом...те, кто считает себя этими...для которых написано то что выше...ставим лайк в первом посту ТС... не стесняемся...
Интересует только вопрос у тех кто восхитится данным произведением и глубокими знаниями какая часть эпитета упразднится? которая "полу" или вторая? 

p.s. И название откуда такое...аааа... как завещал великий вождь... который в любом случае остался человеком
222.png.37f34bbe77becea61bffac9eb2d8df83.png

333.png.e04c036e58c3aa13f496094951108ad1.png
Спасибо, @Yoda, а то получили бы название блога с употреблением названия приматов (или это не приматы, а какой то эпитет отражающий отношение ко всем и каждому?)

 

Edited by Pascha
  • +1 5

Share this comment


Link to comment
В 14.05.2020 в 22:41, Pascha сказал:

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

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

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

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

Share this comment


Link to comment

@stickpro, спасибо за ваш труд и потраченное время! Полезный ман. По возможности напишите в таком же виде про связку с composer.

  • +1 1

Share this comment


Link to comment

кстати у git много применений.

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

Share this comment


Link to comment

Так же одна из полезных функций это сборка новых файлов, например мы разрабоатываем модуль, и руками не хотим собирать файлы в руками
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 коследний коммит, гит соберет все новые файлы и запакует в архив, останется только написать модификатор, если модифицируются стандартные файлы

Share this comment


Link to comment

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

- ДА.

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

- НЕТ.

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

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

  • +1 1

Share this comment


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

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

- ДА.

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

- НЕТ.

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

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

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

Share this comment


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

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

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

Share this comment


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

GitKraken

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

 

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

 

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

SourceTree

интересно.

Share this comment


Link to comment

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

Share this comment


Link to comment
2 часа назад, pimur сказал:

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

 

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

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

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

Share this comment


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

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

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

Share this comment


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

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

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

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

 

  • +1 1

Share this comment


Link to comment

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

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

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

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

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

Share this comment


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

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

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

 

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

Share this comment


Link to comment
Только что, Waha сказал:

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

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

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

Но  я уже писал ранее, если Вы только красить кнопки умеете, то вам гит не нужен

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

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

если на проекте +1 человек, например на бекенде, то в этом случае нравиться вам или нет, но использовать git обязательно.

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

Share this comment


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

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

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

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

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

Share this comment


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

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

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

 

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

А так же в opencart нет удобного дебагера, как например telescope в laravel

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

  • +1 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.