Иметь частную ветку публичного репо на GitHub? - PullRequest
91 голосов
/ 02 ноября 2011

У меня есть публичный PHP-проект в репозитории GitHub, который содержит только одну ветку (master).

Я хочу иметь отдельную ветку / разветвление, которая является для меня приватной (я заплатил за частный GitHubРЕПО).Я хотел бы иметь возможность объединить изменения из частной ветви / ветки в публичное репо и наоборот.

Имея это в виду, вот мои вопросы:

  1. МожетУ меня есть частная ветка в публичном репо?
  2. Могу ли я разложить собственное публичное репо в свою собственную частную ветку / форк?
  3. Если оба из перечисленных вариантов возможны, то это лучший способвперед?Если ни то, ни другое, как мне поступить?

Ответы [ 3 ]

87 голосов
/ 02 ноября 2011

Возможно ли иметь частную ветку в публичном репо?

На GitHub ваш репозиторий является публичным или частным; Вы не можете выборочно «приватизировать» только филиал.

Могу ли я разложить свое публичное репо в собственное частное отделение / форк?

Вы можете клонировать ваше публичное репо на локальный компьютер, при необходимости выполнять ветвление, и просто не выдвигать ваши «частные» ветки вверх по течению (указав , какую ветвь следует подтолкнуть к источнику: git push origin master или git push origin branch-i-want-to-be-public:master).

Какой лучший путь вперед / как мне действовать?

Чтобы использовать GitHub как для вашей публичной, так и для частной разработки, я бы предложил разветвить вашу публичную ветку в GitHub, изменить настройки нового форка на «Private», а затем клонировать приватную версию до вашей локальной. машина. Когда вы будете готовы сделать изменения общедоступными, перенесите все на частную ветвь на GitHub, а затем используйте pull pull , чтобы выборочно копировать ветки в публичное репо.

Чтобы сделать хранилище приватным на GitHub, у вас должна быть обновленная учетная запись (платная) . Если вы качаете только бесплатную учетную запись, вы можете использовать первый предложенный мной процесс & mdash; клонировать общедоступные локальные машины, ветви и выдвигать определенные «общедоступные» ветки в источник & mdash; без необходимости частного репо.

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

41 голосов
/ 09 января 2013
  1. Дублируйте репо .
  2. Сделать дубликат репо приватным на GitHub.
  3. Клонируйте частное репо на вашу машину
  4. Добавление удаленного в публичное хранилище (git remote, добавление публичного git@github.com: ...)
  5. Отправка веток с коммитами, предназначенными для вашего публичного репо, на этот новый публичный пульт. (убедитесь, что вы случайно не зафиксировали личный код)
  6. Вы можете вносить изменения в ваш публичный репозиторий, используя 'git fetch public', а затем объединять их локально и отправлять в ваше приватное репо (origin remote).
1 голос
/ 02 ноября 2011

1.) Возможно ли иметь частную ветку в публичном репо

Из того, что я знаю, нет.

2.) Могу ли я раскрутить свое публичное репо в собственное частное отделение

Нет, вы не можете разложить полное репо (1-n ветки) в одну ветку. Ну, на самом деле вы можете, если вы просто разветвите одну ветку полного репо. Просто добавьте его как удаленный или начните с клона.

Вы также можете быть заинтересованы в Разреженные проверки .

3.) Если оба вышеупомянутых варианта возможны, то это лучший путь вперед

N / A

4.) Если ни то, ни другое невозможно, как мне поступить?

N / A

...