2012-07-05 130 views
2

这是关于git handling binary files和如何git can't follow file history very well的一些类似的“回答”问题的后续。Git和二进制文件的历史

因此,git无法正常关注文件历史记录。哎呀,即使git log --follow -M100% --name-only -- path-to-my-file不会这样做,我是supposedly告诉它只跟随100%相似的文件!

然后we are supposed to use other ways寻找到,如平分谁。这里的问题是:这些似乎不适用于二进制文件。而且accodring to Linus我们不可能在短时间内完全工作git log --follow

最终我这里的问题是

我们是否有任何自动化的方式来实现某种git log于跟踪改名/移动的二进制文件?

或者也许有类似的版本控制系统但有这个功能?

作为一种解决方案的例子,我会接受一些安全和简单的方法using filter-branch,但我从来没有玩过它,并不知道它有多危险。在发布这样一个程序后,我们是否能够没有问题地推拉?我们可以轻松还原吗?我们可以追踪旧名称/参考而不会恢复吗?你知道,在版本控制系统中,对历史的访问就是一切。

回答

0

过滤分支是安全的。只要不改变您提供的脚本中的任何内容。我也很喜欢-M选项。 100%不适用于普通文件。尝试一下。

+0

确定吗?就我而言,重写历史总是危险的。它是否会在克隆回购中被正确地拉扯和推?我能随时轻松恢复吗?我可以追溯旧名称而不恢复它吗? – cregox 2012-07-05 19:40:01

+0

如果您喜欢,请进行备份。但是索引过滤器和工作树过滤器除了执行你所说的每个提交执行的内容外,什么也不做。 – 2012-07-05 21:06:02

+0

这并不是那么紧迫,我会经历备份和测试所有的麻烦......但是你没有回答任何问题! :d – cregox 2012-07-06 16:09:05