使用github进行Git - 将特定文件分离到不同的repo /分支,同时能够将其与主分支开发同步

时间:2012-12-04 12:44:07

标签: git github

问题:如何从Github repo中分离特定文件以分离开发Repo(或分支),同时保留从上游同步的可能性( git pull _)并将(<​​em>拉取请求)同步回原始仓库。

用例:我在GitHub上分了一个library,我正在进行各种改进,更改等等。我的问题是forked repo实际上是一个完整的演示网站包括lib,我不想要dem,因为我实际上正在使用另一个演示网站。对我来说,最佳解决方案可以在我的演示站点中提交lib,并且能够保留与原始repo的连接,而无需删除原始演示站点文件或复制我的。

是的,我想我可以使用一些make / build脚本来复制文件,但它看起来不像是一个优雅(可维护)的解决方案。

如果这是解决方案,那么这项工作的最佳工具是什么?我听说过git hooks但从未真正使用它们。也许TraviCI可以来救援?别的什么?

我很乐意提供任何帮助

编辑:根据我的一些建议,我查看了git remote。但是这可以回复广泛,我需要分离一个特定的文件(或者除了一个特殊文件之外的所有文件),只有她和她将保持与原始回购的远程推/拉连接。

另一个编辑:关于使用git 子模块的建议)我想澄清一下:子模块似乎解决了一半的问题 - 关于从演示站点分离lib的一半,实际上,如果我是原始维护者,我可以做到这一点,允许其他人只在没有演示站点的情况下分叉lib。因为我不是维护者(如果我理解正确的话)将lib分离到子模块将无法解决使其与原始lib同步而不同步演示站点的其余部分的问题。

3 个答案:

答案 0 :(得分:1)

Git不支持您想要做的事情。 Git具有很大的灵活性,但是希望您将单独的东西保存在单独的文件夹中。如果你编写一些shell脚本并封装了很多git命令,你可以使你的计划有效,但我不建议这样做。

您可以做的是:将其他repo放在自己的文件夹中,作为submodule。如果您还需要其他地方的文件,请将其符号链接。

答案 1 :(得分:0)

根据我的理解,您正在寻找的是拥有一个远程回购。检查您是否正在寻找这样的东西:http://gitref.org/remotes/

答案 2 :(得分:0)

我想我找到了解决这个问题的正确方法。类似于子模块,但更具体地针对此问题:使用 subbranch (filter-branch)