簡體   English   中英

在 git 中獲取/拉取時如何忽略其他目錄?

[英]How do I ignore other directories when fetching/pulling in git?

最初,我們的 git 存儲庫中有一個子目錄。 這是我們網站的代碼。 現在我們想要包含相關文件並將它們全部保存在一個存儲庫中,但是對於我們的生產服務器,我們只想git pull/fetch原始子目錄(即code/ )。

在執行git fetchgit pull時,如何配置git以忽略所有其他目錄?

我不想重新克隆; 我找到的大多數解決方案都假設我是從頭開始的。

首先,提醒一句:對這個問題的前兩條評論中的每一條都有不好的建議[1]。

所以... fetch不會更新工作文件。 pull執行一次提取,然后合並到HEAD (大致),實際上它是通常更新工作目錄的更新HEAD的檢出。

您可以設置“稀疏結帳”,但路徑仍然相對於工作樹根。 也就是說,如果你有

/
  /other-artifacts
  /website
  file

並且您在/repo的生產服務器上擁有您的存儲庫,您可以設置一個稀疏結帳來為您提供/repo/website/* ,但是如果您希望website的內容直接出現在/repo ,那就是另一回事了。

“我不想重新克隆”這一聲明可能會也可能不會限制您的選擇; 沒有更好地理解原因,我無法真正解決這個問題。 假設 repo 工作樹當前生產網站目錄,重新克隆到新位置可能是(一部分)從您所在的位置到您想要的位置的最簡單方法,盡管移動和/或重新配置現有的 repo 可能是可行。

我的意思是,如果生產目錄是 repo 工作樹的子樹,那么您可能需要將 repo 工作樹放在文件系統上的其他位置。 然后可以用指向工作樹正確部分的符號鏈接替換生產目錄; 或者您可以在每次結帳后更新它(使用結帳后掛鈎)。

另一種根本不同的方法是將網站本身放在一個單獨的 repo 中,並使其成為更廣泛 repo 的子模塊。 當你開始談論子模塊時,很多人會感到緊張,這將是相當大的返工——肯定不僅僅是重新克隆。

對生產站點使用單獨的分支(如評論中所建議的)似乎是一種近似子模塊的“窮人”方法; 但這樣做只是自找麻煩,因為“僅限生產”分支上的任何提交都將被視為刪除了網站文件夾之外的所有內容,相對於來自主分支的任何可訪問提交。


[1] 我只能假設作者知道他們並沒有真正給出深思熟慮的建議,因為他們選擇在評論中“回答”,而不是在回答部分他們受制於表決。

暫無
暫無

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

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