У меня есть репозиторий с рядом коммитов. Допустим, два старых коммиты являются А и непосредственно после того, как C:Git: Как я могу поместить фиксацию между более старыми коммитами без изменения файлов/папок последующих коммитов?
A--C
В фиксации CI имеют не проверяется в новой версии старых файлов, но на самом деле совершенно новые файлы с тем же имя.
Это делает diff для commit C выглядеть беспорядочным - на самом деле этот diff не имеет смысла, так как файлы полностью разные.
То, что я хочу, чтобы добавить фиксации между А и С (давайте назовем это один B тогда):
A--B--C
В этой фиксации BI необходимо удалить файлы и папки, которые я изменил с C .
Я знаю, что с нижеследующим я могу добавить новое обязательство между A и C:
git rebase --interactive A^
затем делает «изменить» на совершающие
, а затем
git rm -rf file folder/
git commit -m "B" # New commit with name B
Как теперь получить те же файлы и папки, которые я имел после первоначальной фиксации C, а это означает до того B был на месте?
Другими словами: Как я могу получить C снова, но без удаление, которое я сделал в B?
Как насчет, обновите до A, совершите B, перебазируйте C сверху B? Или как насчет того, чтобы просто совершить B поверх A, сливаясь с C, а затем добавить новый набор изменений поверх слияния, чтобы удалить ненужные части? Вы действительно хотите изменить историю? –
После того, как я совершил B поверх A, я попробовал 'git rebase --onto HEAD A master'. Это приведет к перестановке C сверху B, однако это (логически) дает серию конфликтов слияния. Это та ситуация, которую я хотел избежать ... – Christopher