1
我的一位同事通过复制树,删除.git
目录并执行新的git init
,以“错误”的方式创建了一个新的git存储库。然后,同事大大减少了存储库,删除了一堆文件并重命名了其他文件(在提交任何内容之前)。是否有可能将git历史记录还原到复制和修改的树上?
在我看来,它应该有可能通过从原始回购区域到新区域的差异来修复历史记录,然后进行修补。
我能够使用
diff -ur old new --exclude=".git" > master.patch
然后我差点就做
git clone old new_old
cd new_old
git checkout master
patch -p 1 < ../master.patch
# Then, if the patch command had worked, I would have done:
cd ..
rm -rf new
mv new_old new
修补(-p 1
告诉它砍掉库目录名)来产生这样的差异,但它似乎遇到了完全删除文件的问题。
我希望它也会遇到已重命名的文件(例如,从old_dog.hpp
到new_dog.hpp
)的问题。但我也读过git
我确定其他人已经做到了这一点,但我找不到任何例子。有没有一种简单的方法来恢复此存储库中的文件的历史记录,或者我只是在浪费时间?
哇!那太简单了!谢谢一堆。 –