git 将特定文件推送到另一个远程

git push specific files to another remote

我有一个 git 存储库,其中包含几个链接项目,例如

|-- configs
|   |-- A.py
|   `-- B.py
|-- datasets
|   |-- a.py
|   |-- b.py
|   `-- c.py
|-- models
|   |-- x.py
|   `-- y.py
`-- projects
    |-- A.py
    |-- B.py
    `-- common.py

我想用新的遥控器发布这些文件的一个子集。从阅读文档来看,这似乎是不可能的。你会建议什么替代方案? 我在想:

关于如何解决这个问题有什么建议吗?

Git 管理提交。每个提交关联一个文件树,包含 all 个文件的列表。此文件树是提交哈希的一部分,也是存储库完整性的关键部分。因此,Git 无法推送文件子集,因为这意味着必须更改提交。 Git subtree 是维护两个历史行的常用工具,一个供外部使用,可以限制为目录的一个子集,另一个供内部使用。

如您所述,您有多种选择。复制,违背了源代码控制系统的使用,推送整个存储库或使用 git 子模块或 git 子树来生成可以共享的较小存储库。我可以推荐 git 子树,因为它很容易管理,并且可以轻松地从已更改的上游合并文件。