我在Git中有一個大型存儲庫。如何在Jenkins中創建一個只從項目中檢出一個子文件夾的工作?Jenkins和Git稀疏結帳
回答
Jenkins Git Plugin支持稀疏結賬因爲git-plugin 2.1.0(2014年4月)。這個功能需要git> = 1.7.0。它位於「其他行爲」 - >「稀疏檢出路徑」下。
參見:JIRA問題JENKINS-21809
不幸的是,Git仍然需要在本地複製整個存儲庫。所以你可能沒有經歷任何速度改進Git從服務器獲取文件。 – luka5z
不幸的是,它仍然檢查出原來的「路徑結構」是完好無損的,所以它不像它實際檢查出「一個目錄」,它恰好只存在一個目錄,FWIW – rogerdpack
相當老的一個,但我們如何定義一個帶空格的子目錄名稱。我想結賬「文件夾/到/包含/目錄與空間」.. – OK999
您可以使用Git的sparse checkout功能。請注意,Git仍將整個存儲庫克隆到本地磁盤。但這並不算太壞,因爲它被壓縮了。
- 在Jenkins中創建一個新工作,在源代碼管理部分設置Git存儲庫。
- 構建項目。這會將整個存儲庫克隆到本地磁盤。
- 打開項目的工作區文件夾,刪除除.git文件夾以外的所有內容。
打開項目工作區文件夾的Git shell。啓用稀疏結帳:
git config core.sparsecheckout true
更新工作樹:
git read-tree -mu HEAD
創建
sparse-checkout
文件中的.git /信息文件夾中。添加路徑要檢出該文件,像這樣子文件夾(注意斜線):folder/to/include/
再次生成項目。這次只有一個子文件夾應該出現在工作區文件夾中。
你是否必須爲每項工作執行這些命令? –
@RuudLenders是的,您需要爲每個您想要僅簽出一個子文件夾的作業執行此操作。 –
不應該按照步驟6'git read-tree -mu HEAD'執行步驟6?據我所知,應該首先告訴Git應該查看哪些文件(步驟6),然後將樹信息讀入索引。 – borisdiakur
可能您只是將使用
git checkout your-branch -- the/desired/path anthother/desired/path
要清除它你可以只rm -rf
工作文件夾,並用mkdir workingdir
重新創建一個自定義步驟。這需要您在上述命令的git級別指定此選項:
git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path
這一切取決於您對詹金斯的瞭解程度。
問題在於Jenkins通常使用插件來獲取源代碼,Git插件不允許您更改結帳命令。 –
我想編寫或修改一個現有的插件將是一個太多的問題。 –
- 1. git結帳。添加稀疏結帳排除的目錄
- 2. 稀疏結帳和淺層克隆
- 3. Git稀疏結賬排除
- 4. 將Git子模塊設置爲淺克隆和稀疏結帳?
- 5. Jenkin的稀疏結賬後Git結帳不工作
- 6. 使用Git稀疏結賬用git-TF
- 7. 詹金斯觸發與git稀疏結帳
- 8. 如何使用Java在git中執行稀疏結帳
- 9. 配置現有的git回購稀疏結帳
- 10. TFS稀疏結帳本地工作區
- 11. Git 1.7.0中的稀疏結賬?
- 12. 什麼是git稀疏結帳和什麼情況下它是有用的?
- 13. git稀疏結賬和github的淺克隆問題
- 14. 稀疏三元組稀疏矩陣matlab
- 15. 將SVN回購還原爲稀疏結帳(undo'svn up --set-depth infinity')?
- 16. 如何在JGit中實現稀疏結帳?
- 17. 如何使用稀疏結帳排除文件夾
- 18. 詹金斯稀疏結帳:只有目錄的內容
- 19. 的MongoDB:稀疏的獨特價值和稀疏複合索引
- 20. Git的稀疏結賬簡單的Web部署
- 21. 有沒有辦法將Git限制在稀疏結賬?
- 22. svn vs git淺(稀疏)結賬 - 分支,提交
- 23. 一個git倉庫,條件根基於稀疏結賬
- 24. GIT - 稀疏結賬不按預期方式工作
- 25. 稀疏矩陣和矩陣
- 26. Python hashlib和稀疏文件
- 27. 稀疏矩陣和本徵
- 28. 檢查稀疏
- 29. 稀疏矩陣
- 30. 在稀疏表
真的有必要補充一點的複雜性?一旦倉庫第一次被克隆,git就會拉動新的對象。除非你的jenkins服務器缺乏足夠的存儲空間,否則我只會克隆整個系統並避免任何額外的複雜性。 – wadesworld