簡體   English   中英

Git 稀疏結帳在工作目錄上沒有留下任何條目

[英]Git Sparse Checkout Leaves No Entry on Working Directory

我正在嘗試使用 sparse-checkout 從 BitBucket 存儲庫中簽出一個目錄,但是當我嘗試拉取時出現“稀疏簽出在工作目錄上沒有條目”錯誤。

BitBucket 存儲庫具有以下目錄結構:

  • 一些項目回購
    • 約翰斯項目
    • 瑪麗斯計划
    • 我的項目

我在 Windows 7 筆記本電腦上的 E:\Temp\SomeProjectRepo 上有一個本地目錄。 我只想從 BitBucket 存儲庫中簽出/拉出“MyProject”到我的本地目錄,這樣我就可以在 E:\Temp\SomeProjectRepo\MyProject 上工作。

所以我創建了“E:\Temp\SomeProjectRepo”並在 DOS 中執行了以下操作:

  1. cd E:\Temp\SomeProjectRepo
  2. git remote add origin https://bitbucket.org/blah/blah
  3. git init
  4. git config core.sparsecheckout true
  5. echo MyProject >.git/info/sparse-checkout
  6. git pull origin master

在第 6 步,我得到“稀疏結帳在工作目錄上沒有條目”。 我在第 5 步中嘗試了不同的語法(例如MyProject\SomeProjectRepo\*SomeProjectRepo\MyProject\等),但都沒有奏效。

如何使用 sparse-checkout (或任何其他工具)僅在“ MyProject ”上工作?

好的,我開始工作了。 正如我所料,由於第 5 步,它不起作用。

下面的行現在有效:

echo "MyProject/*"> .git/info/sparse-checkout

重要的是使用/ ,使用*並且在目錄末尾不留空格。

然后你可以再次拉取或結帳分支( git checkout master )。

Windows 用戶的解決方案

Windows 上echo "..." > outfile命令以默認系統編碼創建文件。 Git 無法處理,它要求文件為ASCII

電源外殼

將現有文件修改為 ASCII,假設您已經創建了它並且它不起作用:

Set-Content .git\info\sparse-checkout "MyProject/*" -Encoding Ascii

或者從一開始就用正確的編碼創建文件:

echo MyProject/* | out-file -Encoding Ascii .git/info/sparse-checkout

背景

在 Windows git 上查看更長的解釋:“錯誤:稀疏結帳在工作目錄上沒有任何條目”

如果你和我一樣在 windows 上工作

你不應該在 sparse-checkout 文件中得到引號,它不會工作,需要在路徑的末尾使用 /*

這對我有用

echo src/* >> .git/info/sparse-checkout

Windows Git 2.25 注意

2.25 包含git sparse-checkout功能來前端一些這項工作。 但是,據我所知,它以 UTF8 格式寫入稀疏結帳文件,這與 Willem 指出的問題相同

我在這個線程中使用了 powershell 解決方案來強制 ascii https://stackoverflow.com/a/55158885/12927399

只是為git sparse-checkout命令提供一個陷阱警告!

就我而言,我試圖提取的特定文件夾尚不存在於存儲庫中。 所以我必須做一個包含文件夾的推送(來自構建的 NuxtJS 項目的'dist'文件夾),然后錯誤消失了,稀疏結帳按預期工作。

暫無
暫無

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

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