Аналогичный вопрос, Как выбрать несколько коммитов , предполагает, что коммиты последовательны.
У меня есть модуль, который я скачал как тарбол. Я включил его в репозиторий моего основного проекта и внес в него изменения. Эти изменения чередуются с другими коммитами для основного проекта.
Я осознал ошибку своих способов и хочу заменить модуль на подмодуль git. Я мог бы просто добавить текущее состояние, но я хочу сохранить свою историю с git.
Как я могу переместить каждый отдельный коммит в мой новый репо?
Я думаю, что могу сделать это с вишневым киркой, но это отнимает много времени. Вот что у меня есть:
Настройка моего нового репо с основным проектом в качестве удаленного (чтобы я мог выбрать вишню):
cd ~/snippets
git remote add main ~/.vim/
git fetch main
Я вижу соответствующие коммиты в основном проекте с git log ~/.vim/snippets
Я могу сделать скрипт для вишни с
cd ~/.vim/snippets
git log --oneline --reverse --format="format:git cherry-pick %h #%s" .
Но если я запускаю сценарий, возникают конфликты слияния. После того, как я разрешу слияние и фиксацию, мне нужно удалить удачные биты из моего сценария выбора вишни и запустить его снова. Я хотел бы сделать это автоматически, например, git rebase.