0

问题:如何从 Github 存储库中分离特定文件以分离开发存储库(或分支),同时保留从上游同步(git pull _)和同步回(拉取请求)到原始存储库的可能性。

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

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

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

我会很高兴得到任何帮助

编辑:按照这里的一些建议,我检查了git remote。但这适用于回购范围,我需要分离一个特定文件(或除特定文件外的所有文件),只有她才能保持与原始回购的远程推/拉连接。

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

4

3 回答 3

1

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

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

于 2012-12-05T08:03:22.483 回答
0

据我了解,您正在寻找的是拥有一个远程仓库。检查您正在寻找的是否是这样的:http: //gitref.org/remotes/

于 2012-12-04T14:40:07.580 回答
0

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

于 2013-02-23T16:39:10.903 回答