2011-04-14 2 views
39

Я пытаюсь найти лучший рабочий процесс для работы с вилкой существующего проекта с открытым исходным кодом в Github. Я хочу взять существующий проект и внести в него существенные изменения, в этом случае переносить его на андроид и добавлять специальные функции только для Android. Я хотел бы удовлетворять следующим требованиям:Лучший рабочий процесс при форкировании и переименовании проекта GitHub

  1. Можете вывести изменения из своего публичного репо на новый порт андроида при обновлении исходного кода.
  2. Уметь удалять изменения (с помощью запросов на передачу) в исходный проект, когда я исправляю ошибки, которые не только применимы к порту android.
  3. Имейте отдельную переименованную версию проекта, чтобы было ясно, что это порт Android. Я посмотрел на переименование вилки, и Гитуб дал мне огромные предупреждения об этом.

Мои первоначальные мысли, я бы раскошелиться оригинальный проект, то вилка и переименовать мою вилку, чтобы дать мне следующие операции РЕПО:

original-author/projectA 
nicstrong/projectA 
nicstrong/projectA-android 

Это позволило бы мне работать на моем местном репо местном/projectA- android push изменения в nicstrong/projectA-android. Затем, чтобы обновить исходный проект, я мог бы перестроить nicstrong/projectA до последней версии от оригинала-автора/projectA, а затем извлечь/слить из nicstrong/projectA в local/projectA-android.

Мои вопросы:

  1. Я совершенно новой для всей Git вещи. Это похоже на хороший подход ? Или есть ли более эффективный рабочий процесс для обработки этого scenerio?
  2. Как бы я отреагировал нажатием от projectA-андроид назад к nicstrong/projectA, чтобы я мог настроить запрос на тягу для оригинального проекта?

ответ

17

1/Да, кажется, самый безопасный подход, как и любой модификации вы в конечном итоге обратно в портировании nicstrong/projectA будет в проекте с такой же структурой, как original-author/projectA.
Это означает, что запросы на перенос будут проще организовать, так как вы будете в проекте, отражающем проект оригинального автора.

2/Если у вас есть массивный рефакторинг происходит в nicstrong/projectA-android, я хотел бы сделать backport ветку, осторожно слить или вишневого выбрать то, что вам нужно от многочисленных изменений в backport ветви, а затем нажать эту ветвь nicstrong/projectA.
(что означает, что вы добавили nicstrong/projectA как пульт дистанционного управления от nicstrong/projectA-android)

+2

Чтобы создать несколько вилок, я использовал технику, описанную в этой статье: http://adrianshort.org/2011/11/08/create-multiple-forks-of-a-github-repo/ – dbasch

+1

@dbasch true, но это не будет истинная вилка, потому что не будет никакого запроса на тягу от второй «вилки» обратно к исходному репо. – VonC

+0

Я буду использовать репозиторий projectA для запросов на возврат к исходному репо. Изменения в projectA-android/backport будут вручную объединены с projectA. Это хорошая стратегия? – dbasch

3

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

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