2013-07-28 114 views
8

嘗試克隆遠程git存儲庫(裸),我得到了幾個類似於下面的錯誤,之後git停止。Git克隆無法創建文件

error: unable to create file frozen/email/lamson/mymailserver/run/queue/mark.name/cur/1361115664.1929_1.vps-pool-55:2,S (Invalid argument) 

可以,如果我必須刪除這些文件,但我無法找到一種方法來做到這一點,如果我不克隆。

任何想法我可以做什麼?

+0

另請參閱http://stackoverflow.com/questions/13040577/when-cloning-git-repo-under-windows-i-get-error-unable-to-create-file-file –

回答

13

我想你可能試圖在Windows機器上做克隆。 Windows不允許文件名使用:字符。

Microsoft documentation

使用任何字符在當前代碼頁的名稱,包括擴展字符集(128-255)的Unicode字符,字符,除了以下:

  • 以下保留字符:
    • <(小於)
    • >(大於)
    • :(冒號)
    • 「(雙引號)
    • /(正斜槓)
    • \(反斜槓)
    • | (豎條或管道)
    • ? (問號)
    • *(星號)
  • 整數值爲零,有時被稱爲ASCII NUL字符。
  • 其整數表示範圍爲1到31的字符,但允許使用這些字符的備用數據流除外。有關文件流的更多信息,請參閱File Streams
  • 目標文件系統不允許的任何其他字符。

要解決此問題,您可能需要克隆非Windows系統上,並糾正違規文件名。也許一些windows專家會有更好的解決方案。

+0

我在Ubuntu 12上(並且該文件是在另一個Ubuntu上創建的) – Mark

+0

嗯 - 那有點奇怪。你能從錯誤日誌中顯示更多的上下文嗎? –

+1

這個(對於幾個文件)是所有的控制檯顯示。但是,您的解決方案(克隆到另一臺計算機上的非裸倉庫並解決該問題)起作用了! – Mark

2

我交叉引用我的回答,因爲它也適用於此處的https://stackoverflow.com/a/34515900/1012586

然而代替

* 
!kickstarter/parsers/data/kickstarter/campaigndetails/* 

你需要像

* 
!frozen/email/lamson/mymailserver/run/queue/mark.name/cur/* 

.git/info/sparse-checkout

0

git將拒絕ov改寫現有文件。再試一次,克隆到一個空目錄。