当我克隆到通过绝对路径引用的目录(不存在)时,git不会抱怨任何内容,报告0退出代码,但目录是不创建。当我重试时,Git符合执行目录:
user@host /tmp
$ git clone https://github.com/zandev/shunit2.git /tmp/shunit01
Cloning into '/tmp/shunit01'...
remote: Counting objects: 1219, done.
emote: Total 1219 (delta 0), reused 0 (delta 0), pack-reused 1219
Receiving objects: 100% (1219/1219), 308.20 KiB | 0 bytes/s, done.
Resolving deltas: 100% (657/657), done.
Checking connectivity... done.
user@host /tmp
$ echo $?
0
user@host /tmp
$ ls /tmp/shunit01
ls: cannot access /tmp/shunit01: No such file or directory
user@host /tmp
$ git clone https://github.com/zandev/shunit2.git /tmp/shunit01
fatal: destination path '/tmp/shunit01' already exists and is not an empty directory.
user@host /tmp
$ echo $?
128
从cygwin,powershell或Windows UI检查时,目录似乎不存在。我没有看到任何类型错误的迹象。管理员帐户可以观察到同样的问题。
当使用非绝对路径(shunit02
,甚至../tmp/shunit02
)时,我可以正确克隆回购。
使用:
修改
/tmp
目录被Windows视为C:\cygwin64\tmp
。我使用/tmp
作为示例,实际上在/cygdrive/c
中也是如此。
编辑2:
我正在使用Git for Windows。当使用目标的widows路径时,克隆可以正常工作,例如:git clone https://github.com/zandev/shunit2.git 'C:\cygwin64\tmp\shunit4'
答案 0 :(得分:2)
这是由 Git for Windows not accepting cygwin paths引起的,因此/a/b/c
已转换为c:\a\b\c
。事实上,这就是克隆存储库的地方,它解释了后续克隆尝试失败的原因。该目录实际上存在,但真正的目的地是意外的。
git clone https://github.com/zandev/shunit2.git 'C:\cygwin64\tmp\shunit4'
,答案 1 :(得分:1)
您可以尝试重命名现有的/tmp
并在cygwin安装文件夹中重新创建 ,如http://cs.nyu.edu/~yap/prog/cygwin/FAQs.html#tmpfiles中所述:
问:在我安装了cygwin之后,我启动了它,它给出了 以下消息:bash.exe:警告:找不到/ tmp,请 创建! bash:/ etc / profile:无效的参数bash:/。bash_profile: 参数无效答:您需要先创建目录/ tmp。一个 ssuming你的 cygwin根目录名为C:/ cygwin,这意味着你应该 首先创建目录C:/ cygwin / tmp 。
似乎你在Cygwin中使用Git Bash for Windows的git可执行文件。尝试使用Cygwin本身提供的git可执行文件可能是值得的。