2012-06-19 3 views
0

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

Я часто работаю с графическими дизайнерами на веб-сайтах Wordpress для клиентов. После загрузки кода на сервер графический дизайнер иногда редактирует файлы CSS & на сервере, используя редактор Wordpress (в панели администратора Wordpress).

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

Из того, что я читал в Интернете, кажется, что Git может сделать это намного менее болезненным.

Мой вопрос: Если дизайнер вносит изменения в файлы на сервере с помощью редактора Wp без с помощью мерзавца/фиксации, что с помощью Git еще мне помочь? Будет ли он загружать все измененные файлы на мою машину автоматически, аналогично тому, как работает Dropbox?

+0

От чтения больше о 'git', могу ли я просто« вытащить »из репозитория моего сервера, и он автоматически загрузит самые последние файлы, даже если изменения были сделаны без фиксации /' git'ted? – Amit

+2

Это ужасный ужасный рабочий процесс. Не делай этого. Вместо этого помогите дизайнеру настроить локальную установку Wordpress, где они могут совершать и тестировать изменения, и/или клон разработки реального сервера. Обновление сервера должно осуществляться только с помощью 'git pull'. – Daenyth

+0

@ Даэнит имеет это право (хотя я думаю, что он имел в виду «git push»).Дизайнер должен работать над локальной установкой, и когда все будет готово, изменения будут перенесены на производственный сайт. Неконтролируемые изменения, происходящие на месте производства, требуют неприятностей. – wadesworld

ответ

1

Выполняя git pull для перемещения файлов, не собирал никаких изменений из рабочего каталога на сервере. Потенциальный рабочий процесс может состоять в том, чтобы сначала войти на сервер и выполнить все изменения и направить их в открытый репозиторий. Затем вы можете извлечь из голого репозитория локально и увидеть изменения, которые сделали другие, и git поможет вам объединить их в вашу локальную среду.

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

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

Вы хотите исключить файл wp-config.php из репо, или изменить сайт разрешений на основе переменных среды или тому подобного (т. е. установить переменную среды в вашем файле vhost локально и на сервере и использовать условное выражение для определения того, какие учетные данные БД использовать в wp-config.php). Что-то вроде:

switch ($_SERVER['APPLICATION_ENV']) { 
case 'local': 
    define('DB_NAME', 'local'); 
    define('DB_USER', 'localuser'); 
    define('DB_PASSWORD', 'localpwd'); 
    define('DB_HOST', 'localhost'); 
    define('WP_HOME','http://local.verycoolwebsite.com'); 
    define('WP_SITEURL','http://local.verycoolwebsite.com'); 
    define('WP_DEBUG', true); 
    define('SAVEQUERIES', true); 
break; 

case 'production': 
    define('DB_NAME', 'production'); 
    define('DB_USER', 'www'); 
    define('DB_PASSWORD', 'foobar'); 
    define('DB_HOST', 'localhost'); 
    define('WP_HOME','http://www.verycoolwebsite.com'); 
    define('WP_SITEURL','http://www.verycoolwebsite.com'); 
    define('WP_DEBUG', false); 
    define('SAVEQUERIES', false); 
break; 
} 

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

Как другой вариант, посмотрите на команду rsync, если то, что вы ищете, это перемещение изменений в отличие от полного контроля версий.

+0

Я все еще работаю над тем, чтобы схватить голову за ваш ответ, поскольку мне кажется, что мне сложно понять мое основное понимание' git'. Однако, как вы сказали, если мне не нужен контроль версий, 'rsync' определенно будет хорошей идеей. Я забыл об этом камне. +1 – Amit

+1

Немного измененный рабочий процесс может состоять только в том, чтобы установить git локально. Rsync смените изменения и зафиксируйте их локально. Вам все равно придется самостоятельно менять свои настройки (или наоборот), но у вас будет контроль версий и представление о том, что меняется. – Roscius

+0

Я могу прибегнуть к этому. К сожалению, мне будет слишком сложно убедить и учить графических дизайнеров, с которыми я работаю, чтобы локально установить wordpress и использовать 'git'. Использование комбинации 'git' и' rsync' звучит многообещающе! – Amit

Смежные вопросы