Что такое хорошая стратегия Git для поддержки исходного кода на www.hostingcompany.com/~/mysite.com? - PullRequest
0 голосов
/ 18 апреля 2011

Это относится к Не удается скопировать папку на сервере, а затем отредактировать и нажать git?

Итак, скажем, хостинговая компания www.hostingcompany.com

и когда я ssh к нему, я нахожусь в ~, и я увижу

~/mysite.com
~/any_other_folders

Что такое хороший рабочий процесс Git для управления версиями всего исходного кода в ~/mysite.com и может git clone на моем локальном ПК? И чтобы я мог вносить изменения локально, а затем выдать одну строку и отправить в репозиторий, чтобы иметь весь код ~/mysite.com в актуальном состоянии?

Хорошо ли использовать git-репо, а затем sftp с локального ПК на ~/mysite.com? Я предпочитаю этого не делать, так как все сложнее увидеть, все ли синхронизировано.

1 Ответ

2 голосов
/ 18 апреля 2011

Копирование ответа прямо из вопроса , где вы его уже получили:

У вас есть два варианта:

  1. Создайте пустой репозиторий (mysite.com.git) и не пустой репозиторий (mysite.com). В пустом хранилище добавьте хук post-update к git --git-dir=.../mysite.com pull

    Обратите внимание, что вы можете захотеть создать репозиторий non-bare, клонируя его из чистого с флагом -s или настроив впоследствии .git/objects/info/alternates, чтобы избежать копирования всех данных.

  2. Создайте только один репозиторий и:

    1. Снять головку: git checkout master@{0}

    2. Добавить post-update крючок к git merge master

    Причина в том, что git отказывается модифицировать извлеченную ветку, но если вы отмените ветку, вы сможете нажать. И вы сможете обновить рабочий каталог с помощью ловушки (ловушка - это скрипт, помещенный в каталог hooks в хранилище). Вы можете либо создать отдельную ветку и проверить это, либо использовать состояние «detached HEAD» (как предложено выше - git запоминает, какая ветка извлечена, имея специальную ссылку «HEAD», которая указывает на ветку, но если Вы извлекаете что-то, не являющееся ветвью, оно делается для того, чтобы указывать на ревизию напрямую, и это называется «отдельная ветвь», и, поскольку ни одна ветвь не извлечена, вы можете нажать на любую из них). 1038 *

  3. Создайте только один репозиторий и:

    1. Отключить проверку на входе с проверкой.

    2. Добавьте post-update крючок к git reset --hard для повторного извлечения ветви при нажатии.

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

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

Редактировать: добавлен третий вариант.

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