Git和二进制文件历史记录

3

这是关于一些类似的“已回答”问题的后续,这些问题涉及git处理二进制文件以及git无法很好地跟踪文件历史记录

所以,git不能正确地跟踪文件历史记录。即使使用git log --follow -M100% --name-only -- path-to-my-file也无法做到这一点,而我应该告诉它只跟踪100%相似的文件!

然后我们应该使用其他方法来找到需要责备的人,例如bisecting。问题在于:这些方法似乎对二进制文件不起作用。而根据Linus的说法,我们不太可能很快得到一个完全可用的git log --follow

最后,我的问题是

我们有没有自动化的方法来启用某种git log来跟踪重命名/移动的二进制文件?

或者是否有任何类似的版本控制系统具有此功能?

作为解决方案的一种示例,我将接受一种安全简单的使用filter-branch的方法,但我从未尝试过它,也不知道它可能有多危险。在执行这样的过程后,我们能够无问题地拉取和推送吗?我们可以轻松地恢复吗?我们可以跟踪旧名称/引用而不回滚吗?你知道,在版本控制系统中,访问历史记录就是一切。


我现在很少做版本控制了...但如果我再试一次,我会尝试使用Fossil-SCM。这也意味着我们今天可能有更好的选择! - cregox
1个回答

0

过滤分支是安全的。只要不更改您提供的脚本中的任何内容即可。我也对-M选项感到恼火。100%对于普通文件也不起作用。试试看。


你确定吗?就我所知,重写历史总是很危险的。它是否能在克隆的仓库之间正确地被拉取和推送?我是否能够随时轻松地还原它?我能否在不还原的情况下追溯旧名称? - cregox
如果您愿意,可以进行备份。但是索引过滤器和工作树过滤器除了执行每个提交所要执行的操作之外,什么也不会做。 - Adam Dymitruk
这并不是那么紧急,我不会费心备份和测试所有的东西... 但你没有回答任何一个问题!:D - cregox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接