没有历史的Git拉

时间:2012-10-12 19:49:53

标签: git history corruption

我创建了远程存储库的本地副本。由于一些旧的错误提交数据导致了麻烦,我不得不重写(filter-branch)本地repo历史记录。所以现在我有一个远程仓库的克隆,除了提交哈希都是不同的。

有没有办法让本地仓库仍然可以使用远程工具从中提取未来的提交?它永远不会推动,所以这不是一个问题。如果我运行git pull,它会尝试拉出它的整个原始历史记录,这是不需要的,只会重新破坏本地仓库。

1 个答案:

答案 0 :(得分:2)

如果你关心的只是拉动,那么是的。你可以做的是获取远程存储库。然后从远程仓库中识别与最新本地提交匹配的提交。然后使用-s ours标志将远程提交合并到本地,以设置ours策略。这将产生一个合并提交,它将两个历史记录联系在一起,同时仅使用本地历史记录中的树(因此,没有合并冲突)。

通过此合并,您现在可以安全地从远程存储库中git pull,并且它只会尝试合并比刚刚创建的虚拟合并更新的提交。

请注意,您仍然需要保留远程仓库的整个历史记录,并且它可以作为虚拟合并的第二个父级进行访问。但它不会影响你的本地树。