/

使用 git 子模組將網站的一部分公開化

使用 git 子模組將網站的一部分公開化

最近,我在 Netlify 上創建了一個新的網站,希望將其中一部分公開在 GitHub 上,以便任何人都可以提交錯別字等問題的拉取請求。

我在 Hugo 倉庫中有一個名為 content 的文件夾,我想公開的部分是一個名為 handbook 的文件夾。

因此,我為此創建了一個新的倉庫,名為 handbook

我刪除了父倉庫中的 content/handbook 文件夾(如果您從頭開始創建,則不需要此步驟,但我希望移動現有內容):

1
rm -rf content/handbook

然後我提交了更改,然後添加了子模組:

1
git submodule add https://github.com/flaviocopes/handbook

我在 Netlify 上部署了網站,它自動捕獲了子模組。

但在本地上遇到了一個問題,因為並不是像子模組存儲庫文件夾上有著符號鏈接這樣。

我刪除了 content/handbook 文件夾,並從子模組的本地存儲庫添加了一個符號鏈接:

1
2
# 從 `content` 文件夾內
ln -s ../../../dev/handbook/

然後,我告訴 Git 停止跟踪 content/handbook 文件夾,使用以下命令:

1
git update-index --skip-worktree content/handbook

(要恢復跟踪,請使用 --no-skip-worktree

這樣,我既有子模組,也在本地上有指向子模組的符號鏈接,兩者兼得。

tags: [“git”, “submodule”, “GitHub”, “Netlify”, “Hugo”]