Можно ли открыть только определенные файлы / папки в моем личном репозитории GitHub для доступа для чтения / записи для некоторых людей? - PullRequest
2 голосов
/ 25 февраля 2011

Я ищу веб-дизайнеров и хотел бы предоставить им доступ RW только к определенным файлам веб-интерфейса (html, erb-файлам и т. Д.).Я не хочу, чтобы они имели доступ к ядру моего приложения на GitHub.Есть ли способ сделать это?

Ответы [ 2 ]

4 голосов
/ 25 февраля 2011

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

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

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

Если вы не возражаете против того, чтобы они видели файлы ядра, но хотели только предотвратить какие-либо изменения в приложении ядра, тогда Mark Longair ' answer - ваше решение.


Примечание: Отметка напоминает мне в комментариях ниже, что Git-репо может иметь несколько корней (несколько коммитов без родителя).

Это означает, что вместо обмена сообщениями по почте и исправлениям вы можете напрямую импортировать ветку master второго репо непосредственно в ваше первое частное репо, как независимую ветку (ветку без общая история с вашим текущим базовым кодом).

Оттуда вы можете cherry-pick коммиты, которые вы хотите применить к своему собственному коду, или вы можете выбрать свою собственную эволюцию в эту независимую ветвь, прежде чем отправлять ее обратно во второй репозиторий (тот, что предназначен для разработчиков). работать).

1 голос
/ 25 февраля 2011

Самое простое решение, вероятно, состоит в том, чтобы ваши дизайнеры раскрутили ваш репозиторий на github. Они просто помещают свои изменения в свой репозиторий github и нажимают «Запрос на извлечение», когда хотят, чтобы вы объединились в их работе. Тогда у вас может быть небольшой скрипт, который вы запускаете в своей локальной копии:

  1. Проверяет, что вы используете master (или какой-либо другой основной веткой)
  2. Запуски git fetch web-designer-one
  3. Проверяет, что git diff --name-only master web-designer-one/master содержит только файлы, которые вы можете изменить этому человеку
  4. Если все в порядке, запускается git merge web-designer-one/master

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

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