我拉错后,Git错误地解释了文件名已经改变了

时间:2016-09-10 02:22:24

标签: git bitbucket filenames pull core.autocrlf

我通常在mac上工作并维护一个bitbucket存储库(git)。我在mace上拉我的存储库没有问题。

但是当我在Windows(Win7)上提取存储库时,它会解释错误的文件名并显示两个相同名称的文件,一个要删除,一个未知(基本上没有添加)。我该怎么做才能解决问题?这不是文件内的行结束问题,但它可能是文件名中的行结束问题。请帮忙。

enter image description here

如您所见,它显示了两个find.php,一个要删除,另一个要添加。与存储在存储库中时git如何解释文件名有关?

更新

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    .htaccess
    deleted:    400.shtml
    deleted:    401.shtml
    deleted:    403.shtml
....
Untracked files:
 (use "git add <file>..." to include in what will be committed)

    .gitignore
    .htaccess
    400.shtml
    401.shtml
    403.shtml

1 个答案:

答案 0 :(得分:0)

问题实际上不是我怀疑的文件名编码,而是使用git checkout。问题出现是因为代码被拉了但是没有签出

更多详情

我在另一台Windows机器上再次拉出相同的存储库并遇到了同样的问题,但这次我看到了实际的错误,

  

克隆到......   警告:找不到模板C:\ Program Files \ Git \ share \ git-core \ templates   签出文件:100%(917/917),完成。   致命的:无法结账工作树   警告:克隆成功,但结帐失败。   您可以使用'git status'检查检出的内容   并使用'git checkout -f HEAD'重试结帐

通过运行上述命令git checkout -f HEAD,它立即解决了两个文件问题。

但在我的Mac上,这个问题仍未解决。我使用git checkout -f HEAD

时收到以下错误消息
  

$ git checkout -f HEAD错误:无法创建文件   text \ description.txt(没有这样的文件或目录)你的分支是   与'origin / master'保持同步。

我使用了一个技巧在文本文件夹中创建一个虚拟的description.txt文件,它摆脱了错误。该命令现在成功运行但我仍然会看到两个文件(delet,未跟踪)。

然后在SourceTree中我尝试切换存储库并发出pull请求。一段时间后,问题自动得到解决。我认为是解决问题的git checkout -f HEAD命令。

所以事实证明它比我预期的要复杂得多。