2016-04-21 3 views
0

Обычно в репозитории Git у меня есть набор изменений, которые я не хочу входить в основное репо, и должен применяться только к моей машине. Например, у меня может быть какая-то документация или сценарии, которые я нахожу полезными и не ожидаю, что кто-нибудь еще будет поддерживать.Git: поделитесь некоторыми изменениями между определенными машинами.

Решение что проблема легко: поместил их в .git/info/exclude, и что будет игнорировать их, но не говори никому, что я игнорировал их. И для файлов, которые необходимо сохранить, do, используйте флаг --skip-worktree. Все хорошо.

Вот проблема: у меня есть несколько машин - моя рабочая машина, моя домашняя машина, возможно, и виртуальная машина, на которую я переношу, - и хотя эти изменения не должны входить в основной репозиторий, я хочу поделиться им между моим машины. Как я могу поделиться этими личными изменениями между только моими машинами,, не рискуя оттолкнуть их в отделении master?

ответ

0

Я нашел решение, которое работает для меня в этих условиях моей ситуации:

  • РЭПО в вопросе хранится в моем домашнем каталоге (в ~/src/app).
  • Мой домашний каталог (~) также является хранилищем Git для целей резервного копирования.

Что я делаю

  • Отслеживание мои личные изменения в доме репо, и
  • Использование git update-index --skip-worktree в приложении репо, чтобы игнорировать изменения.

(я уже по существу делаю это для некоторых из документации или сценариев, которые я упоминал выше, где весь файл игнорируется.)

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

0

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

В случае, если вы можете создать ветку в основном репозитории, это еще проще.

Однако в обоих случаях вы должны убедиться, что если вы отделились от мастера, вы продолжаете объединять изменения в своей пользовательской ветке, если хотите оставаться в курсе событий.

+0

Это звучит так, будто я буду работать над раздвоенной копией, которая, как бывает, я не ... но это дает мне представление: я могу настроить отдельный пульт для своих собственных изменений? – PJSCopeland

+0

Вы могли бы, но потом снова: любая рабочая копия git также может быть удаленной для другой рабочей копии. – fejese

+0

* Если *, я могу получить доступ к одной машине непосредственно от другой. В этом случае я не могу. – PJSCopeland

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