gitweb позволит Вам просматривать код (и изменения) через браузер.
http://git.or.cz/gitwiki/Gitweb
(Не знают, имеет ли кто-то уже, устанавливает общественность gitweb для Android, но это, вероятно, не слишком трудно.)
Как rebase
(и cherry-pick
), так и объединить
имеют свои преимущества и недостатки. Я выступаю за merge
здесь, но стоит понимать и то, и другое. (Здесь можно найти альтернативный, хорошо аргументированный ответ с перечислением случаев, когда rebase
предпочтительнее.)
merge
предпочтительнее cherry-pick
и перебазировать
по нескольким причинам:
слияние
. rebase
обычно считается более продвинутым. Лучше понять и то, и другое, но люди, которые не хотят быть экспертами в области контроля версий (в том числе, по моему опыту, было много коллег, чертовски хороших в том, что они делают, но не не хочу тратить лишнее время) проще просто слияние. Даже с тяжелым рабочим процессом слияния rebase
и cherry-pick
по-прежнему полезны в определенных случаях:
слияния
является загроможденная история. rebase
предотвращает разброс длинных серий коммитов по вашей истории, как это было бы, если бы вы периодически сливали изменения с другими. Фактически, это его основная цель, поскольку я его использую. Вы хотите быть очень осторожным: никогда не перебазировать
код, которым вы поделились с другими репозиториями. Как только фиксация push
ed, кто-то другой мог выполнить фиксацию поверх нее, и перебазирование в лучшем случае вызовет вид дублирования, описанный выше. В худшем случае вы можете получить очень запутанный репозиторий и скрытые ошибки, на поиск которых у вас уйдет много времени. cherry-pick
полезен для выборки небольшого подмножества изменений из тематической ветки, которую вы ' По сути, я решил отказаться, но понял, что есть пара полезных вещей. Что касается предпочтения слияния нескольких изменений вместо одного: это намного проще. Слияние отдельных ревизий может оказаться очень утомительным, если у вас их много. Разрешение слияния в git (и в Mercurial, и в Bazaar) очень хорошее. В большинстве случаев вы не столкнетесь с серьезными проблемами при объединении даже длинных ветвей. Обычно я объединяю все сразу и только , если я получаю большое количество конфликтов, я создаю резервную копию и повторно запускаю слияние по частям. Даже тогда я делаю это большими кусками. В качестве очень реального примера у меня был коллега, у которого было 3 месяца внесения изменений для слияния, и он получил около 9000 конфликтов в 250000 строк кода. Что мы сделали, чтобы исправить, так это сделать слияние ежемесячно: конфликты не накапливаются линейно, а выполнение его по частям приводит к гораздо менее чем 9000 конфликтов. Работы по-прежнему требовалось много, но не настолько, чтобы пытаться делать это по одной за раз.
По моему мнению, выбор вишни следует зарезервировать для тех редких ситуаций, когда это необходимо, например, если вы сделали что-то исправить прямо на ветке master (ствол, основная ветвь разработки), а затем понял, что это должно быть применено также к maint. Вы должны основывать рабочий процесс либо на слиянии, либо на перебазировании (или «git pull --rebase»).
Пожалуйста, помните, что выбранный или перебазированный коммит отличается с точки зрения Git (имеет другой идентификатор SHA-1), чем исходный, поэтому он отличается от фиксации в удаленном репозитории. (Обычно с этим справляется Rebase, поскольку он проверяет идентификатор патча, то есть изменения, а не идентификатор фиксации.)
Также в git вы можете объединить сразу несколько веток: так называемое слияние осьминога . Обратите внимание, что слияние осьминога должно проходить без конфликтов. Тем не менее, это может быть полезно.
HTH.