Рабочий процесс Git для настройки в удаленном хранилище - PullRequest
1 голос
/ 10 февраля 2012

Мне все еще не ясно в этом:

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

Полагаю, путь будет:

  • клон удаленного хранилища
  • создать ветку для удаленной версии кода "проект"
  • создать локальную ветку "таможня", где мои настройки будут
  • «Мастер» будет моей готовой настройкой

Тогда возможно ли удалить некоторую часть исходного кода из моей ветки "обычаи", ведь снова не будет автоматически синхронизироваться с "проектом", но я все еще смогу сделать вклады для оригинального проекта? Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 10 февраля 2012

Вы можете сделать следующее:

  • Клонировать репозиторий.
  • Основная ветвь всегда должна совпадать с исходной основной ветвью.(Даже несмотря на то, что Git все еще может получить доступ к исходной основной ветке, используя «origin / master» в качестве имени ветви, если вам нужно, я все равно рекомендую сохранить с собой локальную ветвь. Это вопрос вкуса.)
  • Создайте ветку под ваши настройки;Здесь вы можете изменить все, что душе угодно, удалить вещи, изменить вещи, что угодно.Ваши изменения не будут затронуты тем, что происходит в исходном репозитории, если вы не скажете Git.Эту ветку можно отправить в общедоступный репозиторий, если вы хотите - если вы не хотите, чтобы кто-то ее видел, это тоже хорошо.
  • Создайте одну или несколько веток для ваших общедоступных изменений.Эти ветви следует перенести обратно в общедоступный репозиторий, чтобы исходный проект мог воспользоваться вашими изменениями, если они того пожелают.Если они это сделают, ваши ветви в конечном итоге будут объединены в master.
  • Теперь, наконец, создайте ветку для вашей локальной сборки, которая будет содержать исходную ветку master и обе ваши измененные ветви.Я рекомендую вообще не привязываться к этой ветке, а пересоздавать ее каждый раз, когда вы изменяете одну из других веток.Это гарантирует, что эта ветка (и ваша локальная сборка) всегда будут содержать четко определенное состояние.Для этого я обычно использую следующую последовательность команд:
git checkout local
git reset --hard master
git merge my-public1 my-public2 my-private1 my-private2
0 голосов
/ 10 февраля 2012

Вот как это работает.

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

Если им понравятся ваши изменения, они объединят вашу ветку с master или отклонят их.

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

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

0 голосов
/ 10 февраля 2012

Если этот проект с открытым исходным кодом находится на GitHub, вам необходимо разветвлять его (клонировать на стороне сервера), а затем клонировать его локально ( форки работают также на BitBucket , для Mercurial или Git).

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

Если вы хотите, чтобы ваши "пользовательские" коммиты оставались полностью приватными, сделайте ваш форк (на GitHub или BitBucket) частным репо.
Примечание: частные репозитории фактически бесплатны на BitBucket ! (и не бесплатен на GitHub ).

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

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