Я пытаюсь отследить ошибку, которая была введена где-то в определенном коммите. К сожалению, этот коммит состоит из множества файлов, и я не уверен, где возникла проблема. Я хотел бы сделать что-то вроде "git bisect", но это помогло бы, если бы я мог разбить фиксацию задачи на кучу коммитов меньшего размера.
У меня нет проблем с созданием ветвь, возвращая проблемный коммит, затем повторно применяя его как серию коммитов, но я не знаю, как это сделать. Исследование этого вопроса здесь на Stack Overflow приводит к множеству ответов, связанных с переписыванием истории (например, this или this ), что я не хочу делать, потому что коммит находится под вопросом произошло в прошлом и было перенесено в центральное хранилище.
Как разделить один коммит, модифицируя несколько файлов в серию коммитов, по одному для каждого файла?
Редактировать: возможно, я недостаточно четко объяснил вопрос.
У меня есть хранилище с коммитами, которые выглядят так:
A --- B --- C --- D
Коммит B - это проблема. Была введена ошибка, которая была сужена до фиксации B. Но фиксация B состоит из большого количества изменений в большом количестве файлов, поэтому неясно, что именно послужило причиной ошибки.
Что бы я хотел сделать это:
A --- B --- C --- D --- revert B --- B1 --- B2 --- ... --- Bn
Где B1
, B2
, ... Bn
- это коммиты отдельных файлов, которые были изменены в коммите B.
Если я можно сломать проблемный коммит c, затем я могу использовать git bisect
, чтобы еще больше сузить проблему.
Есть ли способ сделать это?