Во-первых, предостережение: каждый из первых двух комментариев по этому вопросу имеет плохой совет [1].
Итак ... fetch
не обновляет рабочие файлы.pull
выполняет выборку, а затем слияние с HEAD
(примерно), и на самом деле это извлечение обновленного HEAD
, которое обычно обновляет рабочие каталоги.
Вы можете настроить «разреженную проверку», но пути все еще относительно корня рабочего дерева.То есть, если у вас есть
/
/other-artifacts
/website
file
, и у вас есть репо на производственном сервере в /repo
, вы можете настроить разреженную проверку, чтобы получить /repo/website/*
, но если вы хотите, чтобы содержимоеwebsite
появиться непосредственно в /repo
, это другая история.
Утверждение «Я не хочу переклонировать» может ограничивать или не ограничивать ваши варианты;без лучшего понимания причины, я не могу решить это.Предполагая, что рабочее дерево репо в настоящее время является каталогом производственного веб-сайта, возврат к новому местоположению, вероятно, (часть) является самым простым способом добраться из того места, где вы хотите, где вы хотите быть, несмотря на перемещение и / илиреконфигурирование существующего репо может быть выполнимым.
Я имею в виду, что если рабочий каталог должен быть поддеревом рабочего дерева репо, то вам, вероятно, нужно, чтобы рабочее дерево репо было где-то еще в файлесистема.Тогда производственный каталог можно заменить символической ссылкой на правильную часть рабочего дерева;или вы можете обновлять его после каждой проверки (с помощью перехвата после проверки).
Другой принципиально иной подход - поместить сам сайт в отдельное репо и сделать его подмодулем более широкого репо.Многие люди нервничают, когда вы начинаете говорить о подмодулях, и это будет значительная переработка - больше, чем просто повторное переселение.
Может показаться, что использование отдельной ветки для рабочей площадки (как это предлагается в комментариях)подход "бедняков" к приближению подмодуля;но делать что-то подобное - просто напрашиваться на неприятности, поскольку любой коммит в ветке «только для производства» будет рассматриваться как удаление всего, что находится за пределами папки сайта, относительно любого достижимого коммита из основной ветки.
[1] Я могу только предположить, что авторы знают, что на самом деле они не дают хорошо продуманных советов, поскольку они решили «отвечать» в комментариях, а не заходить сюда в разделе ответов, где ониподлежит голосованию.