[英]Make directory in private github repo public
我在 Github 上有一個私有倉庫 Repo A 。 Repo A中項目的結構如下:
dist/
src/
project-file.js
project-file2.js
我想在 Github 上的(新)公共存儲庫中提供src/
目錄。
理想情況下,我希望這盡可能自動化。 因此,如果我更新 Repo A 中的源文件,我希望公共存儲庫也能輕松更新。
我找到了幾個解決方案:第一個涉及使用Github 版本和子模塊。 這個似乎使兩個存儲庫保持連接,但我不確定如何將src/
目錄推送到(?)子模塊中,然后將其推送到新的公共遠程存儲庫。
我發現的另一個解決方案是在克隆的 repo 上使用filter-branch
。 我可以預見到使用后者的唯一問題是兩個分支然后變得分離,我對回購 A 所做的任何更改都必須再次重新克隆並重新推送到公共回購。
基本上,我有一個私人項目,但我想公開一些文件以供查看。 我相信第一個選項,使用子模塊是更好的選擇,但我不確定如何在實踐中做到這一點。 我不太精通高級 Git 技術,所以如果我遺漏了什么,我深表歉意。
子模塊仍然是一個更簡單的選擇:
那是:
cd /path/to/cloned/original/repo
git rm -r src/
git commit -m "Remove src"
git submodule add https://github.com/you/newSrcRepo src
從那里,您可以修改 src 中的文件並推送到該新存儲庫:
cd /path/to/cloned/original/repo
cd src
# work in src
git add .
git commit -m "new src modifications"
git push
並在您的父倉庫中記錄新的 src:
cd ..
git add .
git commit -m "src new state"
您可以使用gitexporter
CLI 工具。 它是一個處理所有 git commit-tree 並創建一個具有相同提交但僅包含允許的文件和目錄的新 git repo 的實用程序。
例子
config.json
{
"forceReCreateRepo": true,
"targetRepoPath": "my-open-source-repo-part",
"sourceRepoPath": ".",
"allowedPaths": ["src/*"],
"ignoredPaths": [".env", "secret.json"]
}
gitexporter
npx gitexporter config.json
my-open-source-repo-part
您也可以在 CI 中使用此腳本並始終同步公共存儲庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.