设置:
我有一个父项目。我克隆它,重新初始化 .git,进行更改并提交它们,然后进行许多提交:
git clone https://remote/parent_project.git
cd parent_project
rm .git -fr
git init
sed -i s/their_content/my_content/ README.md
git commit -m 'initial_commit'
...
git commit -m 'more changes'
... [100 more changes]
问题:
一段时间后,我意识到我做了一件坏事,我实际上想保留parent_project
. 自从我的克隆以来,parent_project
有 2000 次提交,我不记得我克隆了什么版本。更糟糕的是,在第 5 步中,我进行了更改并将它们添加到“初始”提交中。文件创建和修改日期丢失。
我如何找出我克隆了哪个版本?
我的想法是我需要git diff-tree -r
在一定范围内的每次提交上运行,并计算文件之间的差异。“距离”最小的修订版可能是我的基础修订版。是否有任何工具已经可以做到这一点或类似的东西?