Редактирование сайта + git. Как правильно выстроить работу?

Использовать GIT начал пару недель назад, цель - система контроля версий.
Сделал по этой инструкции https://github.com/eveness/git-and-timeweb

Проблема в том, что я привык править файлы проекта в Sublime Text и сразу через SFTP менять их на сервере, когда вижу что всё сделал как нужно, делаю add + commit локально, отправляю его на сервер, но т.к. файлы правились напрямую на сервере, возникает конфликт.

Если править файлы только локально и отправлять изменения только через add + commit то конфликта нет.
Что бы работало так - нужно поднимать локальный веб сервер, а это не удобно.

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

С сайтом одновременно работает строго один человек.
  • Вопрос задан
  • 1611 просмотров
Решения вопроса 1
Medik18
@Medik18 Автор вопроса
Решил свою проблему так:
  • На удаленном сайте делаю "git init"
  • Затем получаю через SSH "clone" копию на локальный компьютер
  • Дополнительно делаю "push" проекта на GITHUB (на всякий случай)
  • Работаю с сайтом используя SublimeText + SFTP (локальные правки сразу уходят на сайт)
  • Локально отслеживаю изменения через SublimeMerge
  • Когда понимаю что на сайте всё работает как нужно, на удаленном сервере фиксирую изменения в git
  • Локальные изменения удаляю, либо прячу через stash (при желании можно чистить "git reset --hard" + "git clean -f -d")
  • Получаю "pull" изменения с удаленного сервера, делаю push на GITHUB (на всякий случай)
  • Если делал stash - делаю stash pop, и, то что пришло через pull, идеально ложится на stash pop, т.к. это одно и тоже

Чего я добился этим: делаю быстрые правки и имею возможность откатиться в случае ошибок.
Я понимаю что мой метод идет вразрез логике и самой идеи GIT, но для меня, в настоящий момент, он подходит. Благодарю за ответы и советы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@balamyt92
; select * from users; --
Подскажите, как вы работаете с проектами?

нужно поднимать локальный веб сервер
это не удобно.

что в этом не удобного? неудобно это заниматься этим:
править файлы проекта в Sublime Text и сразу через SFTP менять их на сервере
Ответ написан
Локально обычно тестируют в контейнере, стабильную версию деплоют на сервер. Можно, опять же, контейнером.

Можно автоматизировать доставку кода на сервер, например, используя бесплатный репозиторий gitlab и gitlab ci.
Github так же предлагает несколько бесплатных способов тестить, собирать и деплоить небольшие проекты.
Ответ написан
Комментировать
kudesa
@kudesa
Проектирую и верстаю адаптивные сайты
Alex_Wells
@Alex_Wells
PHP/Kotlin
На сервере ничего не правится. Исключением может быть какой-то хот-хот-хот фикс, хотя я не уверен, насколько это правильно - тогда можно сделать git stash (после того, как пофиксили в репо). В остальных же случаях - используете локальный сервер, и тестируете абсолютно все на локалке.
Ответ написан
Комментировать
syamskoy
@syamskoy
Создайте локальную серверную среду в Vagrant или Docker - там и тестируйте. При появлении нового разработчика ему нужно будет всего лишь запустить ваш контейнер и сразу сможет работать локально.

Для деплоя на сервер можно использовать разные предназначенные для этого софтины, их огромное кол-во: Jenkins, Travis, TeamCity, TFS и т.д. Можно конечно и в крон запихать ежеминутный git pull :) Но лучше все же взять, например, Jenkins. Так же Bitbucket, github и gitlab предоставляют по это для этих целей с инструкцией как настраивать.

PS: Возьмите на данном этапе vagrant и готовый образ под ваши задачи - с ним легче разобраться и настроить, потом можете уже и в сторону докера смотреть.
Ответ написан
Комментировать
xPomaHx
@xPomaHx
1vs9
Можешь поднять на сервере samba и править всё как будто локально в сетевом диске. У меня так сделано пишу код по сути сразу на дев сервере.
Ответ написан
Ваш ответ на вопрос

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

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