簡體   English   中英

Git中“稀疏簽出”的替代方法

[英]Alternatives to “sparse checkout” in Git

在我的工作中,我與Perforce一起工作,並且我非常喜歡這樣的方式:可以在倉庫中擁有盡可能多的代碼,開發人員只需在客戶端中指定某些子目錄,並且僅將該子集下載到本地即可。

根據我的理解[1] [2] [3] ,在Git中,稀疏簽出將簽出一部分文件夾/文件,但仍將下載整個存儲庫,在我看來,這是擊敗對象的唯一原因,因為我會使用它是為了節省磁盤空間。 您可以使用--depth僅下載這么多歷史記錄,但這不是我滿意的解決方案。

使用Git時,大型代碼項目有哪些替代方案? Linus似乎將所有Linux內核代碼都放在一個存儲庫中 如果我想處理部分代碼,該怎么辦?

通常,這不是應該在結帳級別執行的操作,而似乎是存儲庫中的組織問題。

Git圍繞擁有整個存儲庫的用戶大量旋轉,這就是為什么它被稱為“分布式版本控制”系統而不是集中式系統的原因。

git repo通常應包含一個單獨的,自包含的代碼模塊,該模塊應盡可能小且獨立。 如果您有分層項目,則還可以考慮使用子模塊將其組織到一組包含和子存儲庫中。

大多數git托管服務建議或要求最大回購大小小於1GB,通常小於1GB,這實際上意味着,它占用的磁盤空間量在任何現代計算機上都很小。

Linux是一個例外,它是單個git repo中托管的最大的大型項目之一,而克隆它和執行其他繁重操作的性能在速度較慢的硬件上可能很耗時。 但是,這只是Linux內核的一種設計選擇,具有各種優點和缺點。

tldr:不,沒有一種好方法可以執行部分​​檢出而不克隆整個存儲庫,但這應該不是問題,因為您的存儲庫應該很小。

暫無
暫無

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

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