Лучшие практики (или советы) на одном сервере, три входа SSH, одно удаленное Git-репо - PullRequest
1 голос
/ 25 января 2012

Справочная информация:

  • В настоящее время мы 3 веб-программиста (хорошие, настоящие друзья, никаких проблем с недоверием).
  • Каждый программист SSH на отдельный сервер Linux, где находится код, под своим собственным именем пользователя с полномочиями sudo.
  • Мы все используем работу над разными файлами одновременно. Мы задаем вопрос "Вы в файле __?" иногда. Мы используем Vim, поэтому мы знаем, открыт файл или нет.
  • Наш код разработки (пока не производится) находится в / var / www /
  • В настоящее время я настроил один локальный репозиторий Git в /var/repos/.
  • Наше удаленное хранилище размещено на битбакете .
  • Я * очень * новичок в Git. Раньше я использовал Subversion, но в основном мне давали ложные инструкции, и мне точно сказали, что печатать, чтобы синхронизировать коды и фиксировать.
  • Я прочитал около половины Скотта Чакона Pro Git , и это большая часть моих знаний о Git.
  • Если это имеет значение, мы запускаем Ubuntu 11.04, Apache 2.2.17 и Git 1.7.4.1.

Я начинаю думать, что мне нужно иметь 3 отдельных локальных репозитория, расположенных в домашнем каталоге каждого пользователя (помните, что все это все еще на одном сервере). Но имеет ли это смысл, если мы все работаем над одним и тем же кодом на / var / www /?

Также немного связанный вопрос:

  • Насколько я понимаю, я полагаю, что я могу напрямую изменить мое локальное репо (так что для отладки мое репо должно быть видно из браузера, находящегося в / var / www /), или я полагаю, что просто вручную скопируйте отредактированные файлы из каталога разработки и перезапишите мое локальное хранилище, чтобы отследить, зафиксировать, а затем нажать?
  • Если я собираюсь скопировать из моего локального репо, могу ли я просто скопировать и перезаписать весь каталог разработки и позволить Git выяснить, какие из них не отслежены (я не думаю, что это было возможно с помощью subversion)? Или мне все еще нужно отслеживать отредактированные файлы вручную?

1 Ответ

1 голос
/ 25 января 2012

Обычная настройка будет:

  • Каждый разработчик имеет свою локальную рабочую копию, где он хочет;вероятно, их рабочие столы, потому что всегда локально работать быстрее, чем через ssh.

  • Центральный, пустой, репозиторий на сервере (в /var/repos).

  • Хук post-update в центральном репозитории, который обновит /var/www, когда завершится push to master.Есть два способа:

    • Использование git archive и tar для копирования файлов поверх

    • Наличие /var/www/ в качестве хранилища /извлеките и запустите в нем git update.

    Последнее проще и единственное, что нужно сделать, это настроить свой веб-сервер так, чтобы он блокировал каталог .git.

Но вы можете начать с того, чтобы сделать /var/www/ рабочим каталогом - просто git init, git add . и git commit там - и постепенно переключаться оттуда.

Добавить дополнительные вопросы: Git имеет список файлов, о которых он знает.Если вы просто вытрете все, кроме .git, и добавите новый контент, он будет разбираться.Но сделать /var/www хранилищем проще;Запретить отображение .git из обозревателя можно легко, настроив сервер или даже просто установив права доступа (просто установите для пользователя и группы каталога .git значение, равное одному, которого у сервера www нет, но вы делаете это и устанавливаете разрешения на 770)..

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