我在一所要求我们使用 git 将所有工作提交到他们的服务器的学校编码。每个作业都有自己的文件夹,其中有自己的 .git 目录。
我试图将父文件夹推送到我的 github,但是当我推送时,它实际上并没有上传文件夹内的代码,因为它被认为是一个子模块。我尝试制作一个忽略所有 .git 文件夹的 .gitignore 文件,但这没有用。
我见过的唯一解决方案是每次我想将项目内部的更改推送到我的 github 时手动执行 git remote,或者编写一个脚本将父目录的内容与第二个目录同步然后删除推送之前所有的 .git 文件夹。
有没有什么方法可以干净地推送到 github,而无需手动推送每个文件夹,也不必创建一个目录,该目录本质上是我的工作副本,只是为了推送到 github?
最佳答案
将所有内容推送到github,
find -name .git -execdir git push \;
会做的。
如果你真的想穿透子模块,你可以通过添加内容而不是子模块来绕过存储库:
git rm -rf --cached path/to/submodule # to clear out any submodule entry
git add path/to/submodule/.
并且 git 不再将其视为该 repo 中的子模块。现在您可以在两个 存储库中跟踪其内容。 I've seen this before ,但我看不出有什么具体好处,这似乎是很多工作。 Here's another way to go about it ,保持子模块边界和工作流基本完好,但将子模块推送到主模块中的分支。
关于git - 在 Git 中强制添加子模块内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40921904/