在主存储库中,还有另一个存储库(可能是从 github 下载的),我将其称为子存储库。
我不想使用 git 子模块功能。
子存储库最终可能会被提交并推送到他自己的遥控器上。但我想在主存储库中继续工作,忽略该文件夹(子存储库)实际上是一个 git 存储库。但我想跟踪主仓库中的子仓库内容(我正在研究后果here).
我在这项工作中取得了成功,直到我推送了主存储库提交,这时我注意到子存储库内容没有被推送到一起。即使我在提交时添加了它。
Using git ls-files
,我看到文件夹(子存储库)在那里,但文件未列出,所以我不确定主存储库是否实际跟踪子存储库内容。
Using git ls-tree --full-tree -r HEAD
,我看到子存储库被称为commit
, 代替blob
与主存储库的其他文件的情况一样。
是否可以将子仓库内容推送到一起?
我尝试过,子存储库中的文件可以与主存储库一起推送。可以参考以下步骤:
- 本地主存储库中的 Git bash
- Use
git clone <URL for sub-repo>
克隆主存储库下的子存储库
- Use
git status
,你会发现一个untracked文件夹sub-repo,然后使用git add sub-repo/
and git commit
追踪
- 添加一个文件,如new.txt中
/main-repo/sub-repo
目录
- Use
git add sub-repo/new.txt
and git commit
(note:它运行在/main-repo
目录)
- Use
git push
推送到远程 main-repo,您也可以在那里找到文件 new.txt。您也可以使用git ls-files
找到该文件
Note:您可能已经注意到,如果我们使用模式,则模式为 160000git add sub-repo
and git commit
,如果我们使用,模式是 100644git add sub-repo/
and git commit
。 1600000 是 Gitlink,这意味着您将提交记录为目录条目而不是子目录或文件,有点像子模块。 100644 表示常规的不可执行文件。所以你可以将 sub-repo 视为一个文件夹。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)