假设一个人克隆了一个git存储库并删除了.git文件夹。有没有办法恢复他们所在的提交?这不是Best way to restore .git folder或Can deleted .git be restored?的副本,因为此事件后年已过去。我现在正尝试在git下将其更新为新版本。但是,在那些年里可能已经引入了变化,我需要将新版本合并/重新绑定到新版本。
我目前的想法是:
git clone --bare
git config --local --bool core.bare false
有更好的方法吗?有一个semver,但它没有更新,所以它只将范围减少到一年或两年左右。我不相信存储库发生了很大变化,因此我猜测存在完全匹配的文件。也许我可以使用这些信息来缩小可能的提交范围?谢谢!
答案 0 :(得分:1)
我愿意:
将实际来源提交到某个分支(例如_tmp_
),以便索引是干净的
迭代所有可能的提交(例如git rev-list master
)并检查差异
git rev-list master | while read rev; do
git diff "$rev" "_tmp" && echo "it is $rev!"
done
当_tmp_
包含未在资源库中未跟踪的文件时,git diff
将永远不会成功,您必须分析差异(例如,这具有最低wc -l
次胜利。