我有一个Git存储库,其结构如下:
src/
.git/
Api/
Web/
我想将另一个存储库克隆到Web目录,并稍后将新的更改从远程传输到Web。但是我也想修改/Web
下的文件并推送我对主遥控器所做的每一个更改。
我不想把任何东西都推到网络的遥控器上,只是推向主要的。
如果我从网络遥控器中提取更改,我希望看到我在主历史记录中所做的更改。
我可以在这种情况下使用git子模块吗?
docs说"The other repository has its own history, which does not interfere with the history of the current repository."
这就是为什么我犹豫不决,可能这不能用子模块完成......?
答案 0 :(得分:1)
那会有效。 Git将跟踪内容的目录中的所有内容视为现有工作树的一部分;它只在.git
- 包含目录边界时停止,当它扫描当前_un_tracked目录时。
问题是,您当时没有使用嵌套存储库作为子模块 - 您将实际内容提交到主存储库,而不仅仅是嵌套存储库中当前检出的提示的ID 。根本不要使用子模块命令,这将与你告诉git有关内容的所有内容相矛盾。
您必须将任何已更改的内容添加到主存储库,就像对任何其他更改一样。您还可以将其添加到嵌套存储库并在那里跟踪它。
并推动我所做的每一项改变
Git不存储更改,它存储快照。它分析存储的快照以检测并按需更改。
除非你得到支持决定的非常具体的成本效益分析结果,否则不要这样做。