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

标签 git

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

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

那么我该如何配置远程将分支推送到它的默认远程?我必须设置该分支来跟踪 Github 之外的另一个远程服务器吗?

或者是否有更好的工作流程来针对这种情况同步开发两个 fork ?

最佳答案

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

如果你想保密,设置两个仓库,一个用于master,一个用于internal,然后是 cherry-pickinternalmaster 所需的提交,就像您打算做的那样。

要实现此目的,请将 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/

相关文章:

django - 使用 Django、Git 和云服务器进行开发

git - 检查 git 仓库的完整性

git - 无论如何强制执行 git 标签一致性?

git - 无法在 git bash 中生成新的 CSR

具有 ssh 访问权限的共享主机上的 Git 存储库 - 多个用户/一个 ssh 帐户

git - 如何使用 Visual Studio Tools for Git v0.8.5.1 git stash

linux - git 如何处理几个补丁中的一个?

Git - Cherry 为 pull 请求选择一个提交

git - 如何从 git 中的存储库填充我的空工作树?

git - 如何使用 Git 开始推送到二级仓库