6 ответов:
сбор вишни в git означает выбор фиксации из одной ветви и применение ее к другой.
это в отличие от других способов, таких как
mergeиrebaseкоторые обычно применяют много коммитов на другую ветку.
убедитесь, что вы находитесь в ветке, к которой хотите применить фиксацию.
git checkout masterвыполнить следующее:
git cherry-pick <commit-hash>N. B.:
если вы вишневый выбор из общественной ветви, вы должны рассмотреть возможность использования
git cherry-pick -x <commit-hash>это создаст стандартизированное сообщение фиксации. Таким образом, вы (и ваши коллеги) все еще можете отслеживать происхождение фиксации и можете избежать конфликтов слияния в будущем.
если у вас есть заметки прикрепленные к совершению, они не следуют подбирать. Принести их тоже нужно использовать:
git notes copy <from> <to>Дополнительные ссылки:
эта цитата взята из; контроль версий с Git (Действительно отличная книга, Я призываю вас купить ее, если вы заинтересованы в git)
Edit: так как этот ответ все еще производит впечатление, я хотел бы добавить очень хороший в действии видео-учебник об этом:
Youtube: введение в Git cherry-pick
С помощью Git cherry-pick команда git cherry-pick commit применяет изменения, внесенные названным фиксация на текущей ветке. Оно будет введите новую, отличную фиксацию. строго говоря, с помощью git cherry-pick не изменяет существующую историю в репозитории; вместо этого, он добавляет к истории. Как и в других операциях Git, которые внести изменения с помощью процесса применения diff, возможно, потребуется разрешите конфликты, чтобы полностью применить изменения из данной фиксации . Команда git cherry-pick обычно используется для введения конкретного совершает от одного ответвление внутри репозитория на другую ветвь. Один общее использование состоит в том, чтобы переадресовать-или назад-порт фиксирует от обслуживания филиал в ветке развития.
$ git checkout rel_2.3 $ git cherry-pick dev~2 # commit F, aboveперед:
после:
сбор вишни в Git предназначен для применения некоторых фиксаций из одной ветви в другую ветвь. Это можно сделать, если вы например. допустил ошибку и совершил изменение в неправильную ветку,но не хочу сливать всю ветку. Вы можете просто например. верните фиксацию и вишню-выберите ее на другой ветке.
, чтобы использовать его, вам просто нужно
git cherry-pick hash, гдеhash- это хэш фиксации из другой ветви.для полной процедуры см.: http://technosophos.com/2009/12/04/git-cherry-picking-move-small-code-patches-across-branches.html
cherry-pick-это функция Git. Если кто-то хочет совершить определенные коммиты в одной ветви к целевой ветви, то используется cherry-pick.
ГИТ подбирать шаги, как показано ниже.
- проверка (переход к) целевой ветви.
git cherry-pick <commit id>здесь commit id-это идентификатор активности другого branch.Eg.
git cherry-pick 9772dd546a3609b06f84b680340fb84c5463264f- нажмите на целевую ветку
вы можете подумать, что вишневый выбор похож на ребаз, или, скорее, он управляется как ребаз. Под этим я подразумеваю, что он берет существующую фиксацию и восстанавливает ее, беря в качестве отправной точки главу филиала, в котором вы сейчас находитесь.
A
rebaseпринимает фиксацию, которая имела родителя X и восстанавливает фиксацию, как если бы она на самом деле имела родителя Y, и это именно то, что acherry-pickделает.Cherry pick-это больше о том, как вы выбираете коммиты. С
pull(rebase), git неявно восстанавливает ваши локальные коммиты поверх того, что тянется к вашей ветке, но сcherry-pickвы явно выберете какой коммит(Ы), и неявно регенерировать его (их) на верхней части вашего текущего филиала.таким образом, как вы это делаете отличается, но под капотом они очень похожи операции - регенерация коммитов.
это похоже на копирование (откуда-то) и вставку (куда-то), но для конкретных коммитов.
если вы хотите сделать исправление, например, вы можете использовать
cherry-pickхарактеристика.делать
cherry-pickв ветке развития, иmergeэто фиксация в ветке выпуска. Аналогично, сделайтеcherry-pickиз ветви выпуска в мастер. Вуаля


Comments