2012-09-01 113 views
4

我读了.gitattributes,并告诉git不要为几个文件更改行尾。问题是,他们已经承诺。愚蠢的聪明的git现在不想撤消它所做的事情。删除和重新添加这些文件不会有帮助(它优化了更改)。现在,我必须手动重新复制这些文件,每当我从回购拉。Git - 在已提交的文件中不改换行结尾

我该怎么办?报告这是一个错误,并等待修复?以某种方式删除提交对象强制git重新创建它们?后者似乎困难/危险。

编辑:我发现这个nice guide on GitHub完全删除一个文件从回购。问题是,我不想把它从整个历史中删除。我必须,还是只能为最后一次提交做?如果我为最后一次提交完成,Git会重新找到并重新优化吗?

回答

1

我会重新解释现在我已经深入挖掘的问题(我的原始描述稍微偏离),并解释解决方法。

我的Windows机器上的问题文件有LF结尾。当我将它们推送到beanstalkapp.com时,它们保留了它们的LF结尾(与Git设置无关)。当我把它们拉到另一台Windows机器上时,它们变成了CRLF。我添加了.gitattributes将它们视为二进制文件,但是在另一台Win机器上拉取这个文件并没有把它作为LF检查出来。

其他Win上的Git应该在检测到新的.gitattributes时重新正确地重新检测它们,但是没有。另外,在一次提交中删除,在下一次重新添加它们,但是在1步中推动它们并在1步中拉动它们也不起作用。

我不得不提交它们都被删除的提交。然后当他们重新添加时,我不得不再次拉。这让另一台Win机器正确地检查了它们。 我没有尝试在另一台Win机器上删除它们并进行重置--hard,有人建议可能也会清除Git的大脑。

我会写信给邮件列表拉动.gitattributes的行为应该是什么。

+0

邮件列表查询的结果是什么? – Arafangion

+0

@Arafangion不要以为我做到了。 –

-1

1)重置您的历史到最后正确的提交(警告:只有做到这一点,你还是身体有些人有没有做过项目

2)更新.gitattributes改正值的新变化

3)提交

4)用--force属性推送。

+0

没有最后的正确提交。这些文件从一开始就不正确,并且他们被添加了一些(有用的)提交。但是,“重置”是什么意思?这会删除对象吗?因为我希望git会重新找到这些对象并使用它们。 –

相关问题