2012-06-05 3 views
5

Резюме: Я хочу редактировать файлы локально, а затем нажать на обоих Github и мой веб-сервер.Нажмите на удаленный сервер и Github

У меня есть два пульта управления без проблем, поэтому прямо сейчас я могу это сделать; однако, я должен иметь ветвь A, извлеченную локально, и ветвь B на сервере. Затем я должен использовать SSH на сервере и проверить ветвь A (тот, который я хочу). Мне действительно даже не нужна или нужна вторая ветка, но многие сообщения предполагают, что вы не можете или не должны нажимать на не-голый репозиторий. Должен быть лучший способ. Даже просто использовать rsync было бы легче, чем это (и я сделал это некоторое время).

Странно, это никогда не случается на Github. Почти во всех моих репозиториях есть только одна ветка, и я никогда не получал этого предупреждения.

В предупреждающем сообщении говорится, что вы можете установить receive.denyCurrentBranch, чтобы игнорировать, но я не знаю, насколько это безопасно. Я надеюсь, что кто-то поймет мое смутное описание (которое связано с моим ограниченным знанием git) и знайте оптимальное решение.

ответ

4

Было бы проще настроить приемопередатчик после открытого репо на вашем веб-сервере.
Таким образом, этот крюк может:

  • каталога изменений и тянуть новые изменения в реальных, не голых репо
  • кассы филиала вы хотите

Смотрите «Git Post-Receive Hook for Website Staging» и работа в "Using Git to manage a web site":

$ mkdir /var/www/www.example.org 
$ cat > hooks/post-receive 
#!/bin/sh 
GIT_WORK_TREE=/var/www/www.example.org git checkout -f 
$ chmod +x hooks/post-receive 

(Примечание: Интересный факт, вы можете push to two different remote repos simultaneously)

+0

Мне понадобилось минутку для переваривания: '/ var/www/www.example.org' является фактическим деревом сайта на сервере, файл' post-receive' отправляется в голом репо на сервере (должно быть другой каталог), а URL-адрес, который нужно нажать, - это голый репо. Я действительно прочитал это руководство, о котором вы говорили, прежде чем спрашивать. Я запутался, когда в файле site.git не было ни одного из моих файлов, но я думаю, что понимаю, как это работает сейчас. Благодарю. – Daniel

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