我有代码,我定期推送到我的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特定于项目,用户和系统,我想知道是否可以像这样设置工作流程。有什么办法可以说明这个吗?
答案 0 :(得分:1)
Git分支(本地分支和远程分支)不适用于目录和文件,但适用于提交。
让我们命名完整的源存储库orig
和剥离的存储库pub
。由于pub
的历史记录不允许包含orig
唯一的更改,因此存储库不能简单地共享相同的提交历史记录。此外,还有两个问题(orig
分叉pub
并添加一些内容),但我现在无法想到任何方便甚至可用的工作流程。
应该可以写一个小脚本,利用git filter-branch
从pub
存储库创建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所述。