git - 在 Git 中强制添加子模块内容

标签 git github git-submodules

我在一所要求我们使用 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/

相关文章:

git - 将 refs/remotes 推到新的来源,如何?

git - .gitignore 和删除缓存使得我看不到服务器上的文件?

git - 误删了一个文件,如何从origin master那里得到?

git - 这些将现有 Git 存储库导入 GitHub 的方法有何不同?

git - 用于前端和后端 Web 开发的独立 Git Repos

git - 从存储库中删除忽略的文件

java - 跨团队强制执行 Github 存储库的编码标准

java - 如何使用 org.kohsuke.github 库获取有关给定提交的详细信息

git - 自动更新子模块

git - 包管理器与 Git 子模块/子树