git内存错误?无法签出/重置/撤消更改

时间:2010-10-11 22:31:26

标签: git

拉了之后,git状态告诉我我已经更改了一个16Mb的xml文件。

我没有碰过这个档案;但EOL问题可能导致git的混乱(虽然我认为不是因为我有autocrlf =输入)。

然而我写作是因为我无法摆脱这件事。

我尝试了以下各项:

  1. git reset --hard HEAD
  2. git checkout - derived / workflow / xml / definitions.xml
  3. git stash save
  4. 在每次这些之后,git状态告诉我:

    # Changed but not updated:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #       modified:   derived/workflow/xml/definitions.xml
    

    这是一个问题,因为我之后不能“藏匿流行”,(即使在上面的#3之后,在进行'git stash save'之后)

    环境

    • Windows XP
    • Cygwin Git 1.7.1

    一些问题

    • 由于文件太大,git是否会无声地失败? (之前我简要地看到git在内存问题上失败了)
    • 如何解决此问题?

    由于

2 个答案:

答案 0 :(得分:2)

在这种情况下,问题源于我的“autocrlf”设置为“input”。

无论好坏,我们的构建过程会生成带有“CRLF”行结尾的xml文件。

“git status”必须与“autocrlf”一起使用。虽然我没有触及或编辑过该文件,但“git status”必须说“当你提交这个文件时,git必须修改它,所以我会立即报告它为修改后的。”

“解决方案”是关闭autocrlf。

没有autocrlf,git status返回“正确的东西”

答案 1 :(得分:1)

我遇到了类似的问题,这是由于文件名的情况。在存储库中,有一个名为file.txt的文件和另一个名为File.txt的文件(或其他仅根据具体情况而不同的名称)。 Git不希望这样,当在非区分大小写的文件系统(在我的情况下是Mac OS X)上检出repo时,我遇到了同样的问题。

我的最终解决方案是从该结帐中完全排除包含该文件的目录。在我的情况下,我不需要那个目录,这很幸运。