簡體   English   中英

在 Windows git 上:“錯誤:稀疏結帳未在工作目錄上留下任何條目”

[英]On Windows git: “error: Sparse checkout leaves no entry on the working directory”

我有錯誤:

“error: Sparse checkout leaves no entry on the working directory”

嘗試在 Windows 上的 git 中設置稀疏結帳時。 在研究了這個問題並在網絡上找到了完整的答案后,我已經回答了我自己的問題。

tl;博士

從您希望源代碼所在的文件夾中,使用 git-bash 提示 NOT powershell (盡管請參閱下面的編輯):

git clone –n <repo> <local-directory-name>
cd <local-directory-name>
git config core.sparsecheckout true
echo some/sub-folder/you/want >> .git/info/sparse-checkout
git checkout <branch-name>

完整說明

稀疏檢出使您能夠處理存儲庫的一個子集。 在大型存儲庫上設置稀疏檢出是值得的,一切都快得多!

我在 Windows 上設置它時遇到了很多“錯誤:稀疏結賬在工作目錄上沒有留下任何條目”的問題。 經過一些研究,我發現以下步驟很少,並且對我來說效果一直很好——YMMV。

最重要的一點是——不要在這些步驟中使用 POWERSHELL/CMD——使用 git bash 提示。 這是因為否則 echo 命令會生成一個帶有 BOM 標記的 UNICODE 文件。 該文件必須是帶有 UNIX 樣式行結尾的 ANSI 格式文件,以便 git 正確解析它。 這是“錯誤:稀疏結帳在工作目錄上沒有留下任何條目”錯誤的最可能原因。

  1. 從您希望成為根文件夾的目錄的父文件夾中,假設文件夾名稱為“src”,執行以下操作,這將獲取整個 repo(仍然需要),但重要的是不執行結帳,並正確設置啟動遠程和分支跟蹤。

     git clone –n <your repository> src
  2. 您應該有一個相當空的 src 文件夾(它將包含 .git 隱藏文件夾)。 現在運行以下命令。 這將更新本地 git 配置以打開稀疏結帳,並在 .git/info 隱藏文件夾中創建一個文件,該文件將列出您在進行稀疏結帳時要包含的所有文件夾。 這可以稍后編輯以添加其他文件夾。 重要提示:在編輯 sparse-checkout 文件時,請務必使用 git bash 提示符,並使用支持 unix 行結束約定的編輯器並另存為 ANSI,否則您可能會收到“錯誤:稀疏結帳在工作目錄”錯誤。 <path you want to checkout>可能如下所示: path/to/subfolder - 請注意缺少前導和尾隨路徑分隔符。

     cd src git config core.sparsecheckout true echo <path you want to checkout> >> .git/info/sparse-checkout
  3. 現在您可以結帳了。 這應該只留下填充的稀疏結帳文件夾。 如果沒有,請仔細檢查以上所有內容的拼寫!

     git checkout <branch-name>

編輯 - 在 Powershell 中回顯

我最近發現 powershell 中的 echo 是寫輸出的同義詞。 可以通過將 echo 傳送到允許您指定編碼的out-file命令來獲得 ASCII 輸出。 所以這將適用於 Powershell 並提供正確的文件內容:

echo some/sub/folder/you/want | out-file -encoding ascii .git/info/sparse-checkout

標記的答案是正確的,但您不需要在 Windows 上使用“git bash”。 PowerShell 中做同樣的事情很容易:

Set-Content .git\info\sparse-checkout "some/sub-folder/you/want/*" -Encoding Ascii

這將創建一個 ANSI 編碼的文件(顯然),但帶有 CR LF (Windows) 行尾。 不過,這對於 git 來說似乎沒有問題,它運行良好並且進行了稀疏的結帳。

在 Windows Server 2012 上測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM