Как использовать git с локальными копиями файлов dev и live - PullRequest
0 голосов
/ 08 мая 2019

Я веб-разработчик, в настоящее время использующий FTP для развертывания своего кода и пытающийся перейти на git, чтобы ускорить процесс.

Мои текущие проекты выглядят так:

  • webapp1_live
  • webapp1_dev

  • webapp2_live

  • webapp2_dev

Файлы live и dev хранятся локально (полный исходный код), потому что:

  • Мне нужен удаленный сервер для проверки моего кода (у меня есть автоматическая загрузка на FTP при сохранении локальных файлов в Sublime Text)
  • Я использую инструмент сравнения, чтобы выяснить, какие файлы я изменил в dev, и скопировать их в оперативный каталог (вручную), а затем мне нужно вручную отправить их по FTP на живой сервер

Я хотел бы использовать git для отслеживания моих изменений, НО также для быстрого копирования моих изменений из dev в каталог live (позже я выясню, как передать их по FTP на мой удаленный сервер - я кое-что прочитал про крючки и тому подобное ... это уже другая история, я не хочу сейчас вдаваться в подробности)

Я попробовал Sublime Merge, чтобы сделать то, что я хочу, и я настроил dev и живу как локальные репозитории, но когда я пытаюсь перенести свои изменения из dev в live, я получаю эту ошибку:

remote: error: refusing to update checked out branch: refs/heads/master        
remote: error: By default, updating the current branch in a non-bare repository        
remote: is denied, because it will make the index and work tree inconsistent        
remote: with what you pushed, and will require 'git reset --hard' to match        
remote: the work tree to HEAD.

Я читал о пустом хранилище, но, насколько я понимаю, у него нет рабочего каталога, а значит, у него нет копии файлов?!

1 Ответ

0 голосов
/ 08 мая 2019

Это можно легко сделать в git, используя разные ветки.

Ваш текущий проект изменится только на:

  • webapp1
  • webapp2

На самом деле я бы разделил их на два хранилища. Что касается веток, git по умолчанию использует так называемый master -отрасль. Эта ветвь может быть интерпретирована как производственная среда, означающая, что весь код в этой ветке должен работать и быть стабильным (ваши действующие папки)

Тогда я бы создал вторую ветку на основе master под названием develop. Это просто копия главной ветви и включает в себя все новые функции, которые вы хотите добавить. Вы можете создать ветки функций / исправлений, которые затем могут быть объединены в разработку, и все они могут быть объединены после просмотра в основной ветке.

Что касается git, есть несколько команд, которые помогут вам сделать это:

  • git init - это инициализирует git-репозиторий по умолчанию мастер ветка.
  • git checkout -b develop - Это создаст разработку ветка из текущей ветки.
  • git checkout master - Это будет измените вашу локальную ветку на главную ветку.
  • git merge develop - Пока на мастере сливаются все изменения из развивающегося в мастера филиал.

Настройте ваш текущий проект в git

  1. Откройте терминал git и cd в каталог webapp1.
  2. Инициализировать репозиторий git с помощью git init .
  3. Запустите git status, чтобы убедиться, что вы находитесь в главной ветви.
  4. Запустите git push -u origin master, чтобы отправить основную ветвь в удаленный репозиторий.
  5. Запустите git checkout -b develop, чтобы создать ветку разработки из текущей главной ветки.
  6. Запустите git push -u origin develop, чтобы отправить основную ветку в удаленный репозиторий.

Теперь на пульте у вас есть 2 филиала, которые содержат вашу живую среду и среду разработки.

внести изменения

  1. Перейти в разрабатываемую ветку (git checkout develop)
  2. Вытащите последнюю версию из удаленной разработки: git pull
  3. Внесите изменения
  4. Добавление файлов и изменений в индекс: git add -A
  5. Зафиксируйте изменения в индексе: git commit -am "your change message"
  6. Отправьте ваши изменения в ветку удаленной разработки: git push
  7. Когда все в порядке и готово к работе в реальном времени, переключитесь на главную ветку: git checkout master
  8. Получить последние изменения от удаленного мастера: git pull
  9. Слияние вашей ветки разработки с основной веткой: git merge develop
  10. Нажмите ваше слияние с удаленной главной веткой: git push
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...