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
我想用新的遥控器发布这些文件的一个子集。从阅读文档来看,这似乎是不可能的。你会建议什么替代方案?
我在想:
- 复制粘贴到新的存储库(但如果代码在一侧更新,我将不会从另一侧的更改中受益
- 将整个存储库推送到新的远程(但我不确定是否要共享所有内容)
- 重构 repo 并使用子模块或 git 子树(但对于公共文件来说它变得复杂,这意味着创建 3 个存储库(每个项目一个 + 一个用于公共事物,维护起来很麻烦,特别是对于很少的文件)
关于如何解决这个问题有什么建议吗?
Git 管理提交。每个提交关联一个文件树,包含 all 个文件的列表。此文件树是提交哈希的一部分,也是存储库完整性的关键部分。因此,Git 无法推送文件子集,因为这意味着必须更改提交。 Git subtree 是维护两个历史行的常用工具,一个供外部使用,可以限制为目录的一个子集,另一个供内部使用。
如您所述,您有多种选择。复制,违背了源代码控制系统的使用,推送整个存储库或使用 git 子模块或 git 子树来生成可以共享的较小存储库。我可以推荐 git 子树,因为它很容易管理,并且可以轻松地从已更改的上游合并文件。
我有一个 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
我想用新的遥控器发布这些文件的一个子集。从阅读文档来看,这似乎是不可能的。你会建议什么替代方案? 我在想:
- 复制粘贴到新的存储库(但如果代码在一侧更新,我将不会从另一侧的更改中受益
- 将整个存储库推送到新的远程(但我不确定是否要共享所有内容)
- 重构 repo 并使用子模块或 git 子树(但对于公共文件来说它变得复杂,这意味着创建 3 个存储库(每个项目一个 + 一个用于公共事物,维护起来很麻烦,特别是对于很少的文件)
关于如何解决这个问题有什么建议吗?
Git 管理提交。每个提交关联一个文件树,包含 all 个文件的列表。此文件树是提交哈希的一部分,也是存储库完整性的关键部分。因此,Git 无法推送文件子集,因为这意味着必须更改提交。 Git subtree 是维护两个历史行的常用工具,一个供外部使用,可以限制为目录的一个子集,另一个供内部使用。
如您所述,您有多种选择。复制,违背了源代码控制系统的使用,推送整个存储库或使用 git 子模块或 git 子树来生成可以共享的较小存储库。我可以推荐 git 子树,因为它很容易管理,并且可以轻松地从已更改的上游合并文件。