2013-10-10 2 views
0

В моем репозитории «A» я получил из удаленного репозитория «B». Теперь я хочу зафиксировать длинный список конкретных коммитов из B, которые я сохранил в файле журнала, на A. Может ли кто-нибудь подумать о способе сделать это, кроме того, что вручную выберете вишню для каждой фиксации. Я понимаю, что это очень неясная ситуация, и это не то, для чего предназначен Git.Можно ли быстро зафиксировать файл журнала коммитов?

ответ

2

Вы можете написать сценарий, который выполняет итерации над списком комментариев и делает git cherry-pick $i для каждой записи.

Например, если файл commits.txt как это:

223373387c94dbd16ea357cebc95d616031e96a1 
9b04028e3c378b6b60f8e950d43217b764edef35 
ac28f924148c0597aaeaa0cf7f5cbbf54a9eec0f 

вы можете сделать это:

for i in `cat commits.txt`; do git cherry-pick $i || break; done 
+2

Хотя это, вероятно, [безопасно использовать кавычку] (http://partmaps.org /era/unix/award.html#backticks), в этом сценарии стандартная идиома есть 'while read i; do ... сделано tripleee

+0

@Vi. Я думал о том, чтобы что-то делать в этом направлении, но не так, как такой сценарий будет иметь дело с конфликтами, если они произойдут (и я ожидаю их). Как вы думаете? – user2202911

+0

Он будет прерван на первой неудавшейся вишневой подборке. Это то, что '|| перерыв' для. Вы можете вручную разрешить конфликт, отредактировать уже примененные вишневые выделения от 'commits.txt' и перезапустить скрипт. –

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