2016-03-04 58 views
0

我有一個服務器上檢出的git倉庫。 回購曾經有根目錄上的所有相關文件,但我不得不做一些更改,現在我有兩個文件夾,srcdist,我想跟蹤這兩個文件夾。GIT - 稀疏結賬不按預期方式工作

我得到的問題是,在我的服務器上,如果我拉,我現在必須在dist文件夾內導航才能看到內容。

我試圖搜索一下,我認爲我想要做的就是所謂的稀疏結帳。

我跟着這個教程:http://jasonkarns.com/blog/subdirectory-checkouts-with-git-sparse-checkout/,特別是談到現有項目的一部分,我做了什麼提到:

  1. SSH到我的服務器
  2. CD到項目文件夾
  3. 混帳配置core.sparsecheckout真正
  4. 回聲測距/ >> git的/信息/稀疏結賬
  5. 的git讀樹-mu HEAD

但沒有任何事情發生。我的意思是,我仍然需要導航到myproject/dist才能看到一些東西。

我也試過cat sparse-checkout文件和dist/存在。 我也試過git pull origin master,但沒有運氣。

我在這裏錯過了什麼嗎?

回答

2

你做了所有事情,因爲它應該是。


sparse checkout

稀疏結帳你基本上讓Git從工作樹排除一組特定的文件。 這些文件仍然是存儲庫的一部分,但它們不會顯示在您的工作目錄中。

內部,稀疏檢出使用skip-worktree標誌,以紀念所有排除的文件一如既往更新。

# enable sparse checkout in an existing repository: 
git config core.sparseCheckout true 

# Create a .git/info/sparse-checkout file containing the 
# paths to include/exclude from your working directory. 

# Update your working directory with 
git read-tree -mu HEAD 

enter image description here


另一種解決方案可能爲你工作,以及:

Splitting a subfolder out into a new branch/repository

# use filter-branch to extract only the desired folder into a new branch 
# once you done with your work you can always merge it back again. 

git filter-branch --prune-empty --subdirectory-filter YOUR_FOLDER_NAME <branch> 
# Filter the master branch to your directory and remove empty commits 
+0

謝謝你的解釋。我會嘗試分解成早午餐解決方案。謝謝 – Nick