4

Допустим, у меня есть файл с 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 .

0