Как получить рабочую копию репозитория git на стороне сервера

Я хочу иметь пара «локальный репозиторий» + «серверный репозиторий». Стандартный способ - иметь «голое» репо на стороне сервера и «не-голое» репо на моей локальной машине. Но ... иногда я хочу работать с моими файлами с другой машины, например, со своего компьютера на работе или с чужой машины, и мне не хочется переносить свой репозиторий на этот "чужой" компьютер (из соображений безопасности или из-за того, что репозиторий большой, и все, что мне нужно, это отредактировать один файл). В этом случае мне нужна рабочая копия моего репозитория на стороне сервера, а затем я использую смонтировать файлы сервера и работать с ними.

Конечно, я могу создать два репозитория на сервере, один «голый», а другой «не голый», но я не желаю этого делать, чтобы сэкономить место на сервере (зачем хранить две копии репозитория?).

Итак, мое решение следующее. Я создаю на сервере "не-голый" репозиторий и ветку "tmp", в которой нет файлов. Если я не редактирую файлы непосредственно на сервере, я вызываю

      $ git checkout tmp

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

      $ git checkout master

И выполните на сервере «редактировать> добавить> зафиксировать».

Другой вариант, который много обсуждался в stackoverflow, - это вызов

      $ git config receive.denyCurrentBranch ignore

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

      $ git reset --hard HEAD

чтобы синхронизировать рабочую копию с изменениями, которые были отправлены с моего локального компьютера.

(но этот параметр не сильно меняет, это просто вопрос предпочтений, хотите ли вы использовать временную ветвь и делать или ты хочешь позвонить )

У меня вопрос: с учетом того, чего я хочу достичь, хороша ли схема, которую я использую? Или, если это можно сделать по-другому, как?

Опять таки,

  1. Я хочу иметь возможность редактировать файлы время от времени прямо на стороне сервера.
  2. Я не хочу тратить место на сервере и создавать на сервере два репозитория (голый и не голый).

Извините за длинный вопрос.

0 ответов

Другие вопросы по тегам