Чтобы ответить на исходный вопрос о том, как вишнево выбрать некоторые каталоги (как коммиты вместо проверки грубой силы), это возможно. Представьте, что featureA
отклонился от master
, и вы хотите взять с собой tools/my-tool
коммитов.
Предполагая, что вы никогда не делали каких-либо фиксаций, которые содержат как материал, из /tools/my-tool
и вещи из других каталогов
Это поможет вам список коммитов к master
в tools/my-tool
(которые уже не в featureA
) , в обратном хронологическом порядке:
git log --no-merges featureA...master tools/my-tool
сказать, что это еще один способ:
git log --no-merges source_branch...dest_branch my/firstpath my/secondpath [...]
Чтобы получить только совершающие вам нужно в хронологическом порядке, вы должны сначала изменить порядок входных линий (например, с tail -r
или tac
), затем выделить столбец для фиксации хэша (например, с cut
) :
git log --format=oneline --no-merges featureA...master tools/my-tool \
| tail -r \
| cut -d " " -f 1
И делать всю работу сразу, сделайте следующее:
git cherry-pick $(git log --format=oneline --no-merges featureA...master tools/my-tool | tail -r | cut -d " " -f 1)
Общее правило, когда есть '--' в команде мерзавца, как это, на левом является название филиала или commit, справа - это пути. – torek
Зачем вам нужна вишня для этого? Вы можете просто создать вручную объединение каталога. –
спасибо @torek. что я закончил делать, это «git checkout dev - tools/my-tool» – daleyjem