使用两个不同的配置文件,单个Git推送到两个遥控器?

时间:2015-08-07 10:02:10

标签: git git-config

我有代码,我定期推送到我的Bitbucket帐户。现在,我想用单个提交推送到两个不同的遥控器,但是使用不同的git.config文件。 我知道我可以设置不同的遥控器:

git remote set-url --add --push origin git://original/repo.git
git remote set-url --add --push origin git://another/repo.git

我的想法是,我将设置一个配置文件以包含我的所有代码,而另一个配置文件则不包含所有代码。让我们说文件夹中的代码" A"将推送到其中一个遥控器。然后,我将能够访问"不完整的"代码给某人。

我知道git.config特定于项目,用户和系统,我想知道是否可以像这样设置工作流程。有什么办法可以说明这个吗?

1 个答案:

答案 0 :(得分:1)

Git分支(本地分支和远程分支)不适用于目录和文件,但适用于提交。

让我们命名完整的源存储库orig和剥离的存储库pub。由于pub的历史记录不允许包含orig唯一的更改,因此存储库不能简单地共享相同的提交历史记录。此外,还有两个问题(orig分叉pub并添加一些内容),但我现在无法想到任何方便甚至可用的工作流程。

应该可以写一个小脚本,利用git filter-branchpub存储库创建orig树并将其推送到pub遥控器。< / p>

由于我现在从头开始不知道确切的命令,因此请将此视为一个重要的评论,为可能的解决方案提供一般指导;)

当我得到正确的命令时,我会添加一些更具体的想法。

编辑0:git-scm是一个提取子目录的示例:

git filter-branch --subdirectory-filter foodir --tag-name-filter cat -- --all

--tag-name-filter cat用于保留代码。

您可以使用此命令编写脚本,克隆orig,应用过滤器并在每次需要时推送到pub远程。

您也可以发出一次此命令,将项目拆分为多个存储库,如SébastienDawans所述。