我想维护一个项目的两个分叉:一个用于公司内部使用,另一个用于开源。我想在源代码树中包含所有特定于部署的元素(如部署配方和数据库配置以及特定于版本的引导程序文件等)。
我设想的方式是我有两个分支,例如master
和internal
。在这种情况下,我想阻止的一件事是将internal
分支推送到Github,因为那将包含敏感信息。然后,我会从internal
分支中选择更改为主。
那么如何配置将分支推送到其默认远程的遥控器?我必须设置该分支来跟踪另一个远程而不是Github吗?
或者,对于这种情况,是否有更好的工作流程来锁定地开发两个叉?
答案 0 :(得分:2)
一旦有人克隆了您的回购,他(或她当然)可以完全访问存储在回购中的所有分支。 你不能阻止他(或她当然)将完整的回购推送到某个地方,甚至可以在互联网上公开这些来源。
如果您想保密秘密,请设置两个回购,一个用于master
,一个用于internal
,然后cherry-pick
所需的提交来自像你想做的那样internal
到master
。
要实现此目的,请将internal
repo添加为master
repo的远程。在master
做的时候
git remote add internal /path/to/internal
如果您想从internal
提交到master
,只需fetch
将internal
的最新版本修改为master
git fetch internal
然后检查要执行的提交,并使用
cherry-pick
git cherry-pick <SHA1>