我通常在mac上工作并维护一个bitbucket存储库(git)。我在mace上拉我的存储库没有问题。
但是当我在Windows(Win7)上提取存储库时,它会解释错误的文件名并显示两个相同名称的文件,一个要删除,一个未知(基本上没有添加)。我该怎么做才能解决问题?这不是文件内的行结束问题,但它可能是文件名中的行结束问题。请帮忙。
如您所见,它显示了两个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
答案 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
命令。
所以事实证明它比我预期的要复杂得多。