当我尝试以下bash命令时:
git clone --bare https://github.com/planetoftheweb/learnangular.git .git
git config --bool core.bare false
接下来是:
git reset --hard
它给了我这个错误:
error: `unable to stat just-written` file app/component.app.ts: No such file or directory
error: unable to stat just-written file app/component.artist-details.ts: No such file or directory
error: unable to stat just-written file app/component.artist-item.ts: No such file or directory
error: unable to stat just-written file app/pipe.search.ts: No such file or directory
error: unable to stat just-written file app/app.modules.ts: No such file or directory
是什么原因?
答案 0 :(得分:5)
对于因为标题而在这里降落的其他人,但是没有使用裸露的回购,以下内容可能有所帮助。我处于一种奇怪的状态,由于错误我无法reset --hard
:
错误:无法统计刚编写的文件...
由于变化,我无法checkout
。
这对我有用。请注意,您将丢失所有未提交的更改。在继续之前,您可能希望备份整个仓库,以防万一。
删除工作区中除.git
以外的所有文件和文件夹,然后执行以下操作:
git checkout -b wat
git add .
git commit -m "WAT"
git checkout master
git branch -D wat
基本上,这会在名为wat
的分支上创建一个提交,该分支将repo中的每个文件标记为已删除。然后我们有一个清晰的工作区,可以再次检出master
并删除无用的分支wat
。
我刚刚完成了这项工作,并将密切关注回购的任何进一步的怪异,并推动任何未经拆除的分支机构在其他地方寻求安全。
希望有一天能帮助别人。
答案 1 :(得分:2)
git clone --bare
完全克隆。
git config --bool core.bare false
告诉Git裸克隆不是裸克隆。但它仍然是。正如我们以前对编译器说的那样,如果你骗Git,Git会报复。
如果您不想要裸克隆,最简单的方法是不将--bare
添加到您的git clone
命令中。如果您在将裸克隆转换为非裸机时死定,请参阅How do I convert a bare git repository into a normal one (in-place)?
答案 2 :(得分:1)
就我而言,我的存储库中有一个名为con.sh的文件,我试图在Windows计算机上检出此存储库。 con是Windows命令行上I/O device的名称,任何以con开头的文件或文件夹都与此设备引用冲突。这看起来像是git和Windows中的错误。
我删除了本地存储库文件夹。然后,我在Mac上将con.sh重命名为connect.sh,然后在Windows上再次克隆了仓库。
答案 3 :(得分:0)
对于因标题而落在这里但未使用裸仓库且没有Drew Noakes's issue的其他人,以下内容可能会有所帮助。对我来说,问题是我在Windows中使用TortoiseGit克隆了一个存储库,该存储库的文件名末尾带有结尾空格example.png
(<-'g'后有一个多余的空格)而不是{{1 }}。我认为TortoiseGit和/或Windows本身和/或NTFS不能正确处理尾随空间。我不认为命令行git在Windows下也不喜欢它,但是我没有做太多调查。就我而言,该文件无论如何都不应该具有尾随空间,因此Windows中的以下git命令解决了这种情况:
example.png
我认为该文件最初是在Linux下提交的,显然并没有与尾随空格混淆。