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

相关内容