Git — перемещение файла в предыдущую историю этого файла

Git — перемещение файла в предыдущую историю этого файла

Допустим, у меня есть файл filenameв репозитории git в поддиректории dir1с историей примерно следующего вида:

v7 --- v8 --- v9 --- v10

Файл является частью более крупного репозитория с различными подкаталогами, но только указанные выше наборы изменений влияют на этот файл. Теперь я откопал старую версию этого файла ( filenameтоже), которая по ошибке была зафиксирована в другом подкаталоге dir2. Эта старая версия "существует" только в одном наборе изменений, скажем:

v4

Проблема теперь в том, могу ли я переписать историю этих (в git) двух файлов так, чтобы она выглядела так, как будто filenameсуществовала только в , dir1в результате чего история будет выглядеть примерно так:

v4 --- v7 --- v8 --- v9 --- v10

Думаю, я мог бы попробовать удалить файл в dir2и зафиксировать его как новую версию файла в dir1, но это испортит фактическую историю файла, так что на самом деле самая старая версия файла будет отображаться как самая новая.

У меня очень мало опыта в "настройке" истории репозиториев git, поэтому я не знаю, как это сделать, но предполагаю, что rebase может быть ответом? Я единственный, кто работает с репозиторием, поэтому моей единственной заботой будет синхронизация этих изменений на двух компьютерах.

Думаю, на самом деле я хочу просто оставить файл там, dir2где он изначально находится в истории, но хочу изменить коммит, вызванный v4выше, чтобы сделать файл версией файла в формате dir1.

Связанный контент