Рекомендации по настройке веб-проекта для одного разработчика - PullRequest
5 голосов
/ 22 февраля 2011

Я совершенно новичок в GIT, поэтому, пожалуйста, простите мне любые глупые вопросы (если есть такая вещь:)

SCENARIO

  • Один локальный репозиторий на моем компьютере разработчика (Win 7, Eclipse)
  • Один выделенный сервер, на котором размещены сайт тестирования и рабочий сайт (Win 2008 Server, права администратора)

ЦЕЛЬ

  • Существовозможность работать на моем компьютере разработчика и перенести все изменения (после локальной фиксации) на сайт тестирования
  • После тестирования на выделенном сервере я хочу опубликовать изменения с моего компьютера разработки на рабочем сайте

ВОПРОСЫ

  • Мне нужно защитить репозитории, кто-нибудь может подсказать мне, как этого добиться на машинах с Windows
  • Нужна ли папка .gitнаходиться в общедоступном каталоге http или это плохая практика в отношении безопасности?
  • Я рассчитывал работать с настройкой SSH, поскольку HTTP медленный и небезопасный.Какие еще рекомендуемые варианты у меня есть?
  • Могу ли я посоветовать использовать исправления или объединить стабильную / проверенную ветку с моим выделенным сервером?

Любая помощь очень ценится!

Ответы [ 2 ]

4 голосов
/ 23 февраля 2011

Мне нужно защитить репо; Может ли кто-нибудь указать мне учебник о том, как добиться этого на машинах Windows?

Что именно вы подразумеваете под "безопасными репо"? Просто иметь дело с тем, что сервер выставлен в интернет? SSH должно быть достаточно для вас в этом случае. Если бы это был только ты, я, вероятно, не стал бы беспокоиться о чем-то таком, как gitolite - просто создай пустой репозиторий на сервере и не делай его доступным, кроме как через SSH. Я не уверен, какой совет по настройке вам нужен - вам просто нужно иметь возможность подключиться по ssh к компьютеру и получить доступ к пути к хранилищу.

Должна ли папка .git находиться в общедоступном каталоге http или это плохая практика в отношении безопасности?

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

Я рассчитывал работать с настройкой SSH, так как HTTP медленный и небезопасный. Какие другие рекомендуемые варианты у меня есть?

SSH и HTTPS - это два протокола git-передачи, которые необходимо учитывать, если вам нужна безопасность; нет никакой причины смотреть за их пределы. SSH должен быть намного проще в настройке и работе. (Git поддерживает несколько других протоколов, но все они либо не предназначены для безопасного использования, либо просто не так широко используются.)

Не лучше ли использовать патчи или объединить стабильную / протестированную ветку с моим выделенным сервером?

Полагаю, вы спрашиваете о месте производства здесь, так как упоминаете проверенную ветку. Это, конечно, зависит от того, есть ли у вас репозиторий для рабочего сайта или это просто извлеченная копия всего содержимого. В первом случае нет абсолютно никаких причин использовать патчи. Просто потяните в производственный репозиторий:

cd /path/to/production-site
git pull /path/to/testing-site stable-branch

Если ваш производственный сайт не является хранилищем, я, вероятно, сделаю что-то вроде этого:

# check out a copy of the updated version
git archive --format=tar --prefix=new-site HEAD | (cd /var/www && tar xf -)

# swap it into place
mv /var/www/site /var/www/old-site
mv /var/www/new-site /var/www/site
rm -rf /var/www/old-site

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

1 голос
/ 23 февраля 2011

Лучше, чтобы общедоступный каталог HTTP не был git-репозиторием, на всякий случай - ваша полная история git должна быть приватной.Вы можете хранить репозиторий на жестком диске, который не обслуживается сервером HTTP, и использовать git checkout-index или git archive для создания моментального снимка только для содержимого (см. этот вопрос ).

SSH отлично подходит для ваших целей, безопасен и обеспечивает хорошую производительность.

Не используйте патчи - синхронизируйте деревья с push / pull по SSH, затем выберите соответствующую ветку для ваших производственных и тестовых сайтов.Протоколы эффективны и не должны занимать много времени для синхронизации.Вы можете даже выполнять непрерывную синхронизацию, а не только когда хотите развернуть.

Вы можете попробовать эти инструкции от Lifehacker для настройки сервера ssh с openssh на cygwin.

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

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