2016-12-16 88 views
1

我試圖克隆含有長路徑名文件GitHub的倉庫,我試圖使用命令嘗試設置文件名長度的限制與GIT - 權限被拒絕

git config --system core.longpaths true 
繞過Git的文件長度的限制

不過,我收到錯誤消息:

error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied 
error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Invalid argument 

這似乎很奇怪,但該命令試圖改變中的程序文​​件文件,而不是在C:\ Users \用戶名,它應該是。此外,當我檢查.gitconfig文件的C:\ Users \用戶名時,我無法找到一個。有誰知道發生了什麼事?

+0

你期待'core.longpaths'做什麼?我看到下面的命令在Git倉庫中運行,根本沒有輸出:'git grep -i longpath' – torek

+0

請參閱:http://stackoverflow.com/questions/22575662/filename-too-long -in-git-for-windows – Alex

+0

啊,所以這不是一個Git的東西,而是針對msysgit。我添加了msysgit標籤;也許有人會知道。 – torek

回答

1

你想要git config --global

這似乎很奇怪,但該命令試圖改變中的程序文​​件文件,而不是在C:\ Users \用戶名,它應該是。

這是預期的行爲。由於您運行的是git config --system,因此它將查找系統範圍的配置文件。從git-config docs ...

--system

對於寫作的選項:寫全系統$(前綴)的/ etc/gitconfig而不是庫的.git/config中。

你可能想要的是git config --global寫入您的用戶目錄中的全局git配置文件。這與git config --local不同,後者用於寫入.git/config中的當前存儲庫配置文件。

--global

對於寫作的選項:寫入全球〜/的.gitconfig文件,而不是庫 的.git/config中,寫$ XDG_CONFIG_HOME/git的/ config文件,如果該文件存在,並且 〜/ .gitconfig文件沒有。

我希望msysgit沒有改變git config --system的行爲,所以它天真地使用Unix風格/etc/gitconfig一起搗碎一個Windows風格的前綴C:\Program Files\Git\mingw64並獲得混合定界符廢話路徑。

考慮letting them know about this behavior並建議給出更好的錯誤消息。