Как я могу использовать репозитории Git для веб-разработки (и развертывания)? - PullRequest
4 голосов
/ 18 мая 2011

Исходя из простого рабочего процесса «редактировать прямо на FTP», я хочу попробовать управление исходной версией.Как я понимаю, GIT - очень популярный выбор.

Я один разработчик.У меня есть несколько веб-сайтов, на которых я работаю (каждый в / home / domains /) на удаленном сервере (Linux), и я хочу начать работать с ними локально (Mac OS), а затем отправить их обратно (обновить удаленные файлы).

Я, однако, не понимал, как мерзавец должен работать на меня.Похоже, у меня должен быть «пустой» репозиторий, которого у меня нет, потому что в моих проектах уже есть файлы и папки, так что это означает, что мне придется создать новый пустой репозиторий, а затем загружать файлы локально, а затем извлекать удаленно.

Это кажется немного странным, имея 3 хранилища (1 локальное и 2 удаленных), когда я работаю только с 2 папками.

Могу ли я получить совет?

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Существует два стандартных, нормальных варианта, если у вас есть онлайн-доступ между вашим сервером и локальной системой.

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

Во-вторых, вы можете создать пустой репозиторий, чтобы действовать как мастер. Это стандартная модель для общих репозиториев, особенно когда задействовано несколько пользователей, но она работает, когда участвует один пользователь и предпочтительнее, когда между двумя системами может отсутствовать постоянный двунаправленный доступ. Этот пустой репозиторий может находиться в системе Mac, на сервере Linux или в третьей системе (например, в github). Рабочий процесс в этом случае будет состоять в том, чтобы извлечь все изменения из чистого репозитория, внести изменения, зафиксировать, а затем перенести это изменение в пустой репозиторий. При отсутствии специальных хуков вам все равно придется подключиться к серверу по ssh и запустить обновление для обновления живого веб-сайта.

Вы можете создать новый репозиторий, выполнив git clone --mirror --bare из репозитория сервера. После этого вы бы git add remote origin URL-TO-NEW-BARE-REPOSITORY на сервере. Вы можете сделать то же самое в системе Macosx или git clone URL-TO-NEW-BARE-REPOSITORY

Технически возможно настроить систему так, чтобы система macosx могла перемещаться в извлеченный рабочий каталог linux. Я не рекомендую этого, особенно если вы можете вносить изменения и в этот репозиторий, так как процесс может / уничтожит любое незафиксированное изменение. Аналогичная проблема может возникнуть с автоматическими перехватчиками, которые автоматически отправляют / проверяют входящие коммиты в каталог действующего веб-сервера.

Для справочных целей рассмотрим http://toroid.org/ams/git-website-howto и http://joemaller.com/990/a-web-focused-git-workflow/

0 голосов
/ 18 мая 2011

Мой рабочий процесс выглядит так:

  • У меня есть удаленное и локальное репо (это обычные репо, а не голые)
  • Я работаю над своим локальным репо
  • Я совершаю
  • Я отправляю свои изменения в удаленное репо
  • Я запускаю ssh на удаленной машине и запускаю git reset --hard на удаленном репо для обновления файлов

Работает довольно хорошо для меня, особенно потому, что я использую Fabric для выполнения шагов push и reset, поэтому сводится к одному fab push.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...