git只拉取gitlab項目的特定目錄


git只拉取gitlab項目的特定目錄

一、需求引入

  話說我們有個爬取別人網站靜態頁,然后加工為自己所用的程序(python寫的),這個程序放在我們的內網服務器上(win7系統):裝有python3.7.9、代碼編輯器:Visual Studio Code(非常好用,程序員的福音)

  架構圖如下:

 

  簡單說下整個流程,內網win7在系統任務計划的設置下,每天定時跑python程序,從別人的網站去拉數據,頁面加工邏輯:有需要加載js才能處理的頁面【處理起來相對較慢】,也有直接調接口返回數據【比較快】;處理好后會推送到gitlab項目上,該項目有好幾個目錄,線上服務器只需要拉取A.1的目錄即可(都是些html文件),然后nginx轉發到這個目錄就能外網訪問到這些靜態頁面了。

  這里主要說下第3步如何拉取某個項目下的特定目錄的。

 

二、問題解決

1、gitlab上申請一個對這個項目只有reporter權限的用戶,代表只能拉取,不能上傳數據,記得提前把服務器的公鑰放進去gitlab上。

2、創建作為本地倉庫的文件夾,用來存放拉取的目錄

mkdir local-static && cd local-static
git init

3、添加遠程倉庫地址,實現拉取remote的all objects信息

git remote add origin ssh://git@gitlab.example.com/項目名.git

4、開啟sparse clone

git config core.sparsecheckout true

#注意是從項目名開始算的相對目錄
echo "1級目錄A/2級目錄A.1" >> .git/info/sparse-checkout

5、查看確認

cat .git/info/sparse-checkout 

正確信息應該顯示:1級目錄A/2級目錄A.1

6、指定master分支去拉取代碼

git pull origin master


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM