Git экспериментальная ветка или отдельный экспериментальный репозиторий? - PullRequest
2 голосов
/ 01 марта 2012

Я занимаюсь разработкой приложения для Android и использую Git на протяжении всего цикла разработки.Теперь я подошел к моменту, когда я хотел бы создать и выпустить экспериментальные функции для людей, которые могли бы попробовать и установить их, при этом на их устройствах было бы установлено оригинальное стабильное приложение.

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

Я не привык к Git достаточно, чтобы знать, какой путь взять здесь: Должен ли я создать экспериментальную ветку, от которой я разветвляюсь,Я хочу сделать какую-нибудь лабораторную работу или я оставлю эту экспериментальную работу в качестве отдельного git-репо?

У меня есть пара проблем с реальным ходом выполнения в любом случае.

  • Если я создаю экспериментальную ветвь, я не хочу (по ошибке?) Объединять изменения имен пакетов и четко разделяющие экспериментальные детали с основной веткой;Я только хочу объединить рабочие части кода, без дополнительных добавленных изменений.
  • Если я делаю отдельное репо, как мне объединить изменения из экспериментального репо в мастер репо, учитывая то же желание незаменить то естьназвания пакетов и значки?

Ответы [ 2 ]

5 голосов
/ 01 марта 2012

Это именно то, для чего нужны ветки.Единственным ограничением является то, что git действительно видит коммиты, а не файлы.Таким образом, вы обычно объединяете один или несколько коммитов из другой ветви в master с помощью команды cherry-pick.

git branch branchx
git checkout branchx
... do work, commit (into branchx), repeat...
git checkout master   # return to master
git log branchx  # to find out the ID of the commit to merge back
git cherry-pick <commit ID from branchx>

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

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

# from branch master do
git checkout branchx file1 file2 file3

. Как объединить отдельные файлы с помощью git-merge?

1 голос
/ 01 марта 2012

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

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