@DjBodya
Системный администратор

Как начать использовать Git в созданном проекте PhpStorm?

У меня сейчас все работает в таком виде:
1) На локальной машине под Windows 7 стоит PhpStrom.
2) На сервере поднят Apache HTTP server. Там поднят собственно сайт.
3) Я редактирую файл на локальной машине и автоматически их сразу же выгружаю на сервер.

Хочу настроить СКВ, собственно Git. Уже установил Git на сервере и на локальной машине.

Но теперь остался вопрос. Как мне быть, когда сохраняю правки в фалах. Они так же выгружаются на сервер. И у меня получается на сервере куча правленых файлов, которые находятся не в commit`е.

Меня интересует, как делать commit на сервере из PhpStorm? Или делать правки, также само их сохранять на сервер, а когда готов сделать commit - то делать его на локальной машине, а потому push на сервер? Как будет правильно делать? Может есть толковая статья?
  • Вопрос задан
  • 3835 просмотров
Пригласить эксперта
Ответы на вопрос 3
OAPrilepa
@OAPrilepa
Frontend developer
Самый простой вариант такой:
1. Есть локальные файлы проекта. Если настраивается deployment (ftp), то файлы при правках льются на веб-сервер с проектом.
2. Есть репозиторий рядом с локальными файлами, в него делаются коммиты.

Посложнее, можно использовать сервер для хранения репозиториев (на самом деле копий локального репозитория, remote). Например, как писали выше, bitbucket. Или github, или gitlab. В этой модели сервер по прежнему ничего не знает, что у него git.

И самый продвинутый вариант, когда на боевой веб-сервер тоже устанавливается git, и поднимается локальный веб-сервер. На локальном ведутся работы, происходят коммиты. И когда делается push (или pull-request и дальнейший merge) на сервер с git репозиториями (bitbucket), там может автоматически срабатывать заранее настроенный обработчик события - hook, который дернет определенный скрипт на боевом веб-сервере, который в свою очередь делает git pull origin master.

В общем, если работа с проектом ведется в одиночку, и нужен контроль версия для себя - подойдет самый первый вариант.

Если хочется резервную копию репозитория где-то вне машины (или работа ведется эпизодически на разных машинах), то можно подключить bitbucket и делать push\pull\fetch с ним.

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

И третий вариант - самый сложный, обычно используем на техподдержке, когда есть "наша" копия сайта и "боевая". Т.е. на боевую копию не попадает ничего, без полного тестирования на нашей.
Ответ написан
Комментировать
правильнее наверное кодить локально, коммитить и потом пушить на сервер.
не стоит разрабатывать прямо на сервере.
Ответ написан
Комментировать
undefine
@undefine
Senior Software Engineer / PHP
Вообще, конечно, в идеале сервер ничего не должен знать о системе контроля версий. Он должен получать некий готовый “пакет” (rpm/zip/tar) от Jenkins, например, который берет его из удаленного репозитория, например, на BitBucket/GitHub.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы