我使用Git跟踪包含项目管道所有脚本和插件的文件夹的更改。到现在为止还挺好。我想在GitHub上分享这些文件的子集。简而言之,因为完整的存储库还包含我无法公开共享的商业插件和其他代码。
脚本和插件混合在各种文件夹中。所以它并不总是像共享这个文件夹那样简单而不是那个文件夹。
我该怎么做呢?这有可能吗?
编辑:
基本上,我目前的结构是:
programmA
|-plugins (both commercial and public)
|-scripts (both commercial and public)
programmB
|-plugins (both commercial and public)
|-scripts (both commercial and public)
此外,单个程序子文件夹是根据此程序指南构建的。我想通过一些清理工作,我可以做出类似的事情:
programmA
|-plugins commercial
|-scripts commercial
|-plugins public
|-scripts public
programmB
|-plugins commercial
|-scripts commercial
|-plugins public
|-scripts public
然而,那仍然不允许我使用模块,不是吗?或者我是否需要为每个程序和子文件夹使用一个模块?
答案 0 :(得分:2)
您可以执行以下操作:
git init
。git add .
copy repo中的所有文件您可以找到默认git忽略here并根据您的要求进行修改。
您也可以尝试将.gitignore文件添加到现有的repo并提交更改,但我不确定您的脚本在旧提交中是不会出现的。
答案 1 :(得分:0)
当你从一开始就计划这样的事情时,你可以保留'公共'分支机构以推送到GitHub& “私人”分支机构与公共分支机构合并,用于内部开发。
或者,您可以将“公共”内容设置为“商业”内容的子模块。
这里的问题是要反过来,创建一个派生自私有分支的公共分支。我想如果有足够的樱桃采摘你可以创建这样一个分支,但我不羡慕你的努力。
未经测试:使用Oleksandr的方法在新存储库中创建第一个“公共”分支提交,然后在私有资源中创建fetch
。仔细合并可能会产生一个具有“公共”分支的单一存储库,其历史记录很少。一个具有更丰富历史的“商业”分支集合。
否则,您可以尝试使用公共/私人分支方法。
公共分支机构只有公共代码或其父母。公共分支机构将是您推送到公共存储库的唯一分支机构。
私人分支机构将同时包含Public&私人信息。在公共场合完成的工作,我可以合并到私人分支机构,但从来没有相反。私有分支机构将仅被推送到私有存储库,其中来自私有分支机构的数据和公共分支机构中的数据将被显示。
如果您认为某个功能最初可能是私有&最终成为公共,您应该仅将新的私有功能分支基于公共工作,然后将其合并到专用分支。这样,当您将其合并到专用分支时,它的父提交都不包含私有信息。出于这个原因,您可能希望基于Public分支将每个私有功能基于其自己的分支,因此当/如果您将它们设置为Public时,您需要在您的存储库上做更少的手术以使该分支中的代码公开