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