Организация работы через Git
Rus
Eng
Организация работы через Git

Как добавить файлы сайта в проект на gitlab через phpstorm

  • 1. Активируем git на проекте через VCS -> Enable Version Control Intergration
  • 2. Добавляем привязку к проекту на gitlab через VCS -> Git -> Remotes. Нажимаем на + и добавляем ссылку на проект в формате https://gitlab.com/USERNAME/PROGECTNAME.git
  • 3. После добавления ссылки авторизуемся на гитлаб, если еще не авторизованы
  • 4. Добавляем файл .gitignore и комментируем ненужные файлы и папки, например так:
  • /bitrix/
    /!doc/
    /test/
    /upload/
    /vendor/
    /.idea/
  • 5. Помечаем все нужные файлы и папки через Ctrl + A
  • 6. Делаем коммит, а после push на сервер. После завершения все выбранные вами файлы и папки окажутся на сервере
  • 7. Вместо пунктов 1 и 2 можно сразу воспользоваться командой VCS -> Get from Version Control

Как логически организовать работу с сайтом через Git

  • 1. Создаем основную ветку master и ветку для тестирования dev.
  • 2. При возникновении новой задачи, из актуализированной ветки master создается ветка под задачу
  • 3. Задача выполняется и сливается с веткой dev, решаются все конфликты и проверяется работоспособность (локально)
  • 4. Ветка dev заливается на дев сервер, проверяется работоспособность
  • 5. Если всё хорошо, ветка задачи сливается с актуализированной веткой master, решаются все конфликты и проверяется работоспособность (локально)
  • 6. Ветка master заливается на прод сервер

В командах консоли это выглядит примерно так:

1. git checkout master
2. git pull
3. git checkout -b task-branch
*выполняется задача*
4. git checkout dev
5. git pull
6. git merge task-branch
*решаются конфликты*
7. git push
*проверяется работоспособность на dev'е*
8. git checkout master
9. git pull
10. git merge task-branch
*решаются конфликты*
11. git push

Автоматическая заливка файлов на сервер после коммита с помощью .gitlab-ci.yml

Размещаете файл в корне проекта. Константы заменяете на свои и определяете их в настройках проекта, пути прописываете, а в самом файле размещаете код:

deploy:
  before_script:
    - apt-get update -y
    - apt-get install -y rsync sshpass
    #Передаем пароль из переменной окружения
    - export SSHPASS=$SSH_PROJECT_PSWD
  script:
    #синхронизация (push rsync)
    - rsync --recursive --links --owner --group --times --verbose --no-perms --chmod=D0755,F0644 --rsh="sshpass -e ssh -o StrictHostKeyChecking=no" --exclude '.git' --exclude '.gitlab-ci.yml' -avz ./ $SSH_PROJECT_USER@$SSH_PROJECT_SERVER:/ПОЛНЫЙ_РУТ_ПУТЬ_К_ФАЙЛАМ_ВАШЕГО_ПРОЕКТА_НА_СЕРВЕРЕ/
  only:
    - master

Данный код будет заливать файлы и папки под root владельцем. Если нужно задать кастомного владельца, то последнюю строку следует видоизменить на:

- rsync --recursive --links --times --verbose --chmod=D0755,F0644 --chown=bitrix:bitrix --rsh="sshpass -e ssh -o StrictHostKeyChecking=no" --exclude '.git' --exclude '.gitlab-ci.yml' -avz ./ $SSH_PROJECT_USER@$SSH_PROJECT_SERVER:/ПОЛНЫЙ_РУТ_ПУТЬ_К_ФАЙЛАМ_ВАШЕГО_ПРОЕКТА_НА_СЕРВЕРЕ/

Если вы используете нестандартный порт, ко команду следует модифицировать добавив ssh -p PORT_NUMBER, например так:

- rsync --recursive --links --times --verbose --chmod=D0755,F0644 --chown=bitrix:bitrix --rsh="sshpass -e ssh -p 7777 -o StrictHostKeyChecking=no" --exclude '.git' --exclude '.gitlab-ci.yml' -avz ./ $SSH_PROJECT_USER@$SSH_PROJECT_SERVER:/ПОЛНЫЙ_РУТ_ПУТЬ_К_ФАЙЛАМ_ВАШЕГО_ПРОЕКТА_НА_СЕРВЕРЕ/

Для установки rsync на сервер воспользуйтесь командой:

yum install rsync

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

Если у Вас есть решение лучше, то прошу поделиться им.

Загрузка локального репозитория в проект gitlab через консоль

Инициализируем git

git init
git add
git commit -m "Первый коммит"

Связываем локальный репозиторий с репозиторием gitlab

git remote add origin https://gitlab.com/USERNAME/PROGECTNAME.git

Заливаем файлы в gitlab

git push origin master

Комментарии

Комментариев еще нет, Вы можете стать первым кто его оставит

Оставьте комментарий

На сайте используется система премодерирования комментариев, поэтому ваше сообщение будет опубликовано лишь после одобрения модератором

Вы отвечаете на комментарий пользователя

Отправить

ОБРАТНАЯ СВЯЗЬ

Напишите мне

Вы разрабатываете новый сервис, вносите доработки в существующий и хотите лучше чем у конкурентов? Вы обратились по адресу. Предлагаю вам комплексную разработку сайтов студийного уровня. У меня вы можете заказать дизайн, верстку, програмированние, разработку нетрадиционного функционала, реализацию связи между CMS, CRM и Data Analitics, а так же все остальное касаемое сайтов, кроме продвижения.

Обращайтесь, я всегда проконсультирую по всем вопросам и помогу подобрать наиболее эффективное решение для Вашего бизнеса. Я занимаюсь созданием сайтов в Новосибирске и в других регионах России, также работаю со странами СНГ. Вы останетесь довольны нашим сотрудничеством

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

Телефоны

+7(993) 007-18-96

Email

info@tichiy.ru

Адрес

Россия, г. Москва

Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта

Написать мне
Отправить
Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта
Отправка успешна!
Thank you for your feedback. I will answer you within the next working hours
Отправка не удалась
Во время отправки запроса произошла ошибка. Пожалуйста, подождите и попробуйте снова через некоторое время или свяжитесь со мной