防止从分支推送到特定的远程

时间:2012-02-23 10:34:48

标签: git

我想维护一个项目的两个分叉:一个用于公司内部使用,另一个用于开源。我想在源代码树中包含所有特定于部署的元素(如部署配方和数据库配置以及特定于版本的引导程序文件等)。

我设想的方式是我有两个分支,例如masterinternal。在这种情况下,我想阻止的一件事是将internal分支推送到Github,因为那将包含敏感信息。然后,我会从internal分支中选择更改为主。

那么如何配置将分支推送到其默认远程的遥控器?我必须设置该分支来跟踪另一个远程而不是Github吗?

或者,对于这种情况,是否有更好的工作流程来锁定地开发两个叉?

1 个答案:

答案 0 :(得分:2)

一旦有人克隆了您的回购,他(或她当然)可以完全访问存储在回购中的所有分支。 你不能阻止他(或她当然)将完整的回购推送到某个地方,甚至可以在互联网上公开这些来源。

如果您想保密秘密,请设置两个回购,一个用于master,一个用于internal,然后cherry-pick所需的提交来自像你想做的那样internalmaster

要实现此目的,请将internal repo添加为master repo的远程。在master做的时候

git remote add internal /path/to/internal

如果您想从internal提交到master,只需fetchinternal的最新版本修改为master

git fetch internal

然后检查要执行的提交,并使用

cherry-pick
git cherry-pick <SHA1>