在 Github 上公开分享私人仓库的一部分
Share publically a part of a private repo on Github
我想知道在 Github 上公开共享 Github 上私人存储库中的文件的最佳方式是什么。
我希望每次在我的私人存储库中自动推送时,文件也会自动更新。
特别是我有一个 .tex 项目:我想对 tex 文件保密,但我想向所有人提供 pdf 文件。
注意 我知道 gitignore 选项的存在,但我不想使用它,因为我想跟踪对 tex 文件的改进
Github 不提供此类功能。 Github 存储库要么是 public 要么是私有的,但不能两者兼而有之。但是,如果您要共享的部分足够小(比如说 4-5 个文件),您可以 create a public gist。不幸的是,没有办法自动更新要点。
I would like to keep secret the tex files but I would like to make available to everyone the pdf file.
您可以将 public 回购(其中包含一个简单的 README
)作为 public 回购工件(您的 pdf)上传并关联到
=12=].
添加你私人仓库的 public 仓库 as a submodule:这将创建一个包含 README 的子文件夹,解释在哪里可以找到 pdf(在 [=31 的发布部分=]回购)
然后您可以从您自己的私有存储库中:
- 更新自述文件(仅用于创建新提交)
- 标记 README 子模块存储库(创建一个您将与您的版本相关联的标记)
- 将您的 pdf 上传到 public 回购版本,与创建的标签相关联。
所有这些步骤都可以编写脚本,使用 GitHub API: here is an example (focused on the release upload part) in bash shell。
如果只有一个文件,您可以只使用原始文件link。
转到 GitHub 上的那个文件并单击 "raw"
只需在地址栏中使用 link 就可以了...
使用原始 link 提供 URL 和 "token=",它似乎在一定天数后过期。
您可以根据您现有的私人仓库自动创建一个public Github 仓库。
您可以使用 git-exporter。它允许您定义 public 存储库中可用的文件路径。该实用程序基于具有类似提交历史记录的现有存储库创建一个新的 git 存储库。只有允许的文件才会包含在提交内容中。
示例:
创建config.json
:
{
"forceReCreateRepo": true,
"targetRepoPath": "my-open-source-repo",
"sourceRepoPath": ".",
"allowedPaths": ["*.pdf"],
"ignoredPaths": ["*.tex"]
}
然后运行命令npx gitexporter config.json
.
新存储库 my-open-source-repo
仅包含 "*.pdf"
个文件。
然后您可以推送 my-open-source-repo
并将其用作开源。
像这样:
cd my-open-source-repo
git remote set-url origin github.com/orgname/repo-name.git
git push origin master
我想知道在 Github 上公开共享 Github 上私人存储库中的文件的最佳方式是什么。
我希望每次在我的私人存储库中自动推送时,文件也会自动更新。
特别是我有一个 .tex 项目:我想对 tex 文件保密,但我想向所有人提供 pdf 文件。
注意 我知道 gitignore 选项的存在,但我不想使用它,因为我想跟踪对 tex 文件的改进
Github 不提供此类功能。 Github 存储库要么是 public 要么是私有的,但不能两者兼而有之。但是,如果您要共享的部分足够小(比如说 4-5 个文件),您可以 create a public gist。不幸的是,没有办法自动更新要点。
I would like to keep secret the tex files but I would like to make available to everyone the pdf file.
您可以将 public 回购(其中包含一个简单的 README
)作为 public 回购工件(您的 pdf)上传并关联到
=12=].
添加你私人仓库的 public 仓库 as a submodule:这将创建一个包含 README 的子文件夹,解释在哪里可以找到 pdf(在 [=31 的发布部分=]回购)
然后您可以从您自己的私有存储库中:
- 更新自述文件(仅用于创建新提交)
- 标记 README 子模块存储库(创建一个您将与您的版本相关联的标记)
- 将您的 pdf 上传到 public 回购版本,与创建的标签相关联。
所有这些步骤都可以编写脚本,使用 GitHub API: here is an example (focused on the release upload part) in bash shell。
如果只有一个文件,您可以只使用原始文件link。 转到 GitHub 上的那个文件并单击 "raw"
只需在地址栏中使用 link 就可以了...
使用原始 link 提供 URL 和 "token=",它似乎在一定天数后过期。
您可以根据您现有的私人仓库自动创建一个public Github 仓库。
您可以使用 git-exporter。它允许您定义 public 存储库中可用的文件路径。该实用程序基于具有类似提交历史记录的现有存储库创建一个新的 git 存储库。只有允许的文件才会包含在提交内容中。
示例:
创建config.json
:
{
"forceReCreateRepo": true,
"targetRepoPath": "my-open-source-repo",
"sourceRepoPath": ".",
"allowedPaths": ["*.pdf"],
"ignoredPaths": ["*.tex"]
}
然后运行命令npx gitexporter config.json
.
新存储库 my-open-source-repo
仅包含 "*.pdf"
个文件。
然后您可以推送 my-open-source-repo
并将其用作开源。
像这样:
cd my-open-source-repo
git remote set-url origin github.com/orgname/repo-name.git
git push origin master