我想维护一个项目的两个分支:一个供公司内部使用,另一个供开源使用。我想在源代码树中包含所有特定于部署的元素(如部署配方和数据库配置以及特定于版本的引导文件等)。
我设想的方式是我有两个分支,例如 master
和 internal
。在那种情况下,我想防止的一件事是将 internal
分支推送到 Github,因为那会包含敏感信息。然后我会从 internal
分支中挑选更改到 master。
那么我该如何配置远程将分支推送到它的默认远程?我必须设置该分支来跟踪 Github 之外的另一个远程服务器吗?
或者是否有更好的工作流程来针对这种情况同步开发两个 fork ?
最佳答案
一旦有人克隆了您的存储库,他(或当然是她)就可以完全访问存储在存储库中的所有分支。 您不能阻止他(当然也不能阻止她)将完整的存储库推送到某个地方,甚至不能在互联网上公开源代码。
如果你想保密,设置两个仓库,一个用于master
,一个用于internal
,然后是 cherry-pick
从 internal
到 master
所需的提交,就像您打算做的那样。
要实现此目的,请将 internal
存储库添加为远程到 master
存储库。在 master
上做
git remote add internal /path/to/internal
当你想从 internal
提交到 master
时,只需 fetch
internal
的最新修订到 master
git fetch internal
然后检查要进行的提交和cherry-pick
他们使用
git cherry-pick <SHA1>
关于git - 防止从分支推送到特定的远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9411295/