我是Git的新手。
我刚为Windows安装了Git(2.9.3)(10),然后我打开了git-bash并做了git clone <remoteURL>
。使用远程存储库的整个副本创建一个新文件夹,这很好。但后来我运行了一个git status
,我得到了大量的deleted
文件(我想所有刚刚复制过的文件)准备就绪to be committed
,并且存储库文件夹下的三个主要文件夹是untracked
。 deleted
文件实际上存在于我的驱动器上!
我很确定我的git状态应该是干净的。发生了什么事?
This关于已删除的文件没有帮助(我没有使用checkout
),this也没有关于未跟踪的文件(我没有使用Mac OS)。
答案 0 :(得分:12)
我正在检索一个路径很长的巨大项目。我忘了设置Git使用长路径:
git config --global core.longpaths true
在此之后,克隆工作正常并且状态清晰。
答案 1 :(得分:4)
此问题不仅使“ git的新手” OP感到困惑。这也吓坏了我,一个相当可观的git老手。 :-)
感谢这里其他答案的提示,我意识到这是由git引起的,它无法检出某些名称在当前文件系统和/或OS上不支持字符的文件。例如,当我克隆一个github Wiki仓库时,我遇到了同样的错误,某些Wiki页面的文件名恰好包含一个:
,可以在我的Linux机器上很好地克隆它们,但是(事后看来) )显然不在我的Windows框中。
了解根本原因使我们对如何/是否解决此问题有一个自信的决定:
答案 2 :(得分:3)
如果您在Windows上遇到问题,可能会根据以下禁止的字符检查文件名:
<< / strong>(小于)
> (大于)
:(冒号)
” (双引号)
/ (正斜杠)
\(反斜杠)
| (垂直条或管道)
? (问号)
* (星号)
或者使用以下其中一个保留字命名的文件,或者其中一个以扩展名开头的文件: CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9。
更多详细信息,请参见here。
答案 3 :(得分:2)
听起来你已经以某种方式加载了一个空索引。使用命令git read-tree --empty
发生这种情况的正常方式,但这不是您通常使用/知道的新git用户。
克隆可能出了问题。这应该不难解决,只需运行
git reset
并且索引应该恢复到最新提交的内容。
答案 4 :(得分:0)
也可以是文件名中的不可见字符,请在其他系统上查看;)
答案 5 :(得分:0)
万一您到了这里并且longpath属性不起作用并且您在Windows上运行并使用Git Bash,则可能在Windows中使用保留关键字来保存文件。即,我的文件中包含nul
,克隆后将其删除。我花了半天的时间才发现这是保留关键字。
解决方案是简单地重命名文件(在您可以创建文件的其他计算机/操作系统上)。推动它,然后在Windows计算机上重做克隆操作。
答案 6 :(得分:0)
我在Windows 10上遇到了类似的问题,我还检查了其他git运行正常的窗口,我的git版本是2.24.xx。我安装了git 2.16.x的git旧版本,它解决了这个问题。试试吧,让我们知道
答案 7 :(得分:0)
就我而言,我已在Mac上不区分大小写的文件系统中克隆了该存储库,但是该存储库包含一个名为Config
的文件和一个名为config
的目录,该文件系统认为该目录是相同的。事情。因此,克隆后它显示文件Config
已删除。
解决方法是在区分大小写的文件系统上克隆存储库。