问题标签 [git-submodules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2312 浏览

git - 如何让顶级git跟踪另一个子目录git下的所有文件

命令序列

mkdir topdir
mkdir another-git-directory
touch fileC
touch fileD
git add .
git commit -m "sub-dir init"
cd ..
touch fileA
touch fileB
git add .
git commit -m "top-dir init"
git ls-files
// 现在我们可以看到顶层 git 没有跟踪 fileC 和 fileD //
git ls-files -o
// 这不会向我们显示 fileC 和fileD 作为未跟踪的文件//

我的问题是:我们如何使“git ls-files -o”显示子目录中未跟踪的文件?为什么 git 的行为是这样的,因为我希望 git ls-files 显示所有未跟踪的文件(即使它在另一个子目录 git 中)?

我知道我可以让顶级 git 使用“git add */.”来跟踪子目录文件......但我很想知道为什么上面的问题。谢谢!

目录结构

更新(6 月 26 日)

我发现这个线程Unable to track files within Git submodules和这个 url (cn) http://blog.ossxp.com/2010/01/425/它解释了如何解决这个问题。

解决方案:

git rm --cached another-git-directory #没有尾部斜杠
git add another-git-directory/.
git 提交

'git rm --cached path/to/sub-dir-or-sub-module' 将告诉顶层目录不要将子目录视为子模块......我认为......

0 投票
2 回答
7596 浏览

svn - 为什么 git 子模块与 svn 外部不兼容?

有很多网页建议使用骇人听闻的方法使 svn 外部看起来像 git submodules。我已经阅读了一些关于区别的说明,但这似乎不是很重要:

Git 子模块链接到另一个项目存储库中的特定提交,而 svn:externals 总是获取最新版本。

为什么这种差异使它们从根本上不相容?我们是否可以假设一个合理的默认值,例如大多数 svn:externals 指向永远不会移动的标签?

0 投票
3 回答
30709 浏览

git - 如何将 git repo 中的特定文件夹添加为 git 子模块?

我有一个 git repo,我想向它添加一个子模块。问题是,子模块作为另一个 repo 中的文件夹存在。我可以只将该文件夹添加为子模块吗?

0 投票
1 回答
452 浏览

svn - 是否可以在 git 中将 subversion 存储库作为“子模块”?

是否可以在 git 中将 subversion 存储库作为“子模块”?

在这个项目中,我们将有几个部分,但有些部分会使用 svn,有些会使用 git。所以我正在寻找一个“项目根”,我们可以将其他项目作为子模块(或类似的)。

问题是是否可以用 git 管理这个“项目根”?

谢谢约翰


反问题可以在这里找到:


更新

在反向问题中,VonC 给出了一个提示,这可以用 git-svn 完成,有没有人举个例子来说明这会是什么样子?

0 投票
1 回答
152 浏览

git - 删除 git 子模块存储库中的分支是否会使该分支中的提交对超级项目不可用?

我对 git 很陌生,我怀疑这个答案是否定的,但想在这里与一些更有经验的 git 用户核实一下。

我有一个超级项目,它有一个提交,其中包括对子模块开发分支的引用。我有点担心,当我将该开发分支重新定位到 master 并删除它时,引用的子模块提交将消失,从而使引用它的超级项目提交无法使用。


虽然我已经回答了这个问题,但它提出了另一个问题。这种行为可以指望吗?我读过 git 将已删除的项目保留在 refs 中一段时间​​,然后将其删除。这会导致克隆首先工作,然后失败吗?

0 投票
1 回答
296 浏览

git - 如何从单独的项目中提取 git 子模块?

让我们保持简单好吗?

我有一个 git 项目设置。我们称之为ProjectA。我的朋友设置了另一个较旧的 git 项目,称为 ProjectB。在 ProjectB 中,他设置了两个子模块 SubOne 和 SubTwo。现在,当我的意思是“设置”时,我的意思是他可以“git submodule update”它们。它们存在。

现在,出于自私,我想偷他的子模块(我不是真的偷,他把它们给了我)。

有没有办法在我的 ProjectA 中只提取他的子模块?如果是这样,怎么做?此外,由于我们正在处理姊妹项目,因此文件结构必须保持不变。也就是说,他的文件在ext/SubOne和ext/SubTwo下,我的文件需要相同。

最后一件事; 他知道如何创建子模块,但我们不再有它的 url。

感恩!NS

0 投票
9 回答
56533 浏览

git - Git:我可以禁止在状态、差异等中列出“修改的内容”/脏子模块条目吗?

有时(我认为大约是 1.6.x 版本)git 开始意识到子模块内部的变化。那只会惹恼我:

请让它停下来?

编辑:

好的,所以我有一个答案。现在我还有一个问题:

我可以把这个放进去~/.gitconfig吗?从我最初的情况来看,我似乎做不到,而且通过浏览补丁,我没有看到任何有希望的东西。(我想我仍然可以制作别名。)

0 投票
2 回答
199 浏览

git - 子模块是插件还是依赖项?

假设项目 X 是基础项目,项目 Y 依赖于 X。项目 Y 可能是项目 X 的​​插件,或者它可能是一个独立的应用程序,需要以其他方式使用项目 X。

我一直认为项目 Y 应该是超级项目,项目 X 应该是项目 Y 的子模块。

然而,在阅读本文时,似乎我的想法可能会颠倒过来。在本文中,依赖项是超级项目,依赖项代码(在本例中为插件)是子模块。那么这是使用子模块的正确方法吗?

0 投票
1 回答
819 浏览

git - 如何修改 git 存储库以在所有过去的修订中添加子模块?

我使用标签成功地将我的 SVN 存储库迁移到 Git 中git svn-clone。但是,git svn-clone不迁移svn:externals。因此,我决定使用git filter-branch.

对于svn:externals,首先我为每个 svn:externals 创建了一个单独的 Git 存储库,然后我尝试使用以下内容,但它不起作用。

知道如何做到这一点吗?提前非常感谢。

0 投票
3 回答
8904 浏览

git - 无法摆脱 git 子模块

我在我的 Rails 3 项目中添加了一些 Haml 模板

只是发现,当我尝试编辑其中一些文件时,这是一个子模块,所以我无法提交我在lib/generators/haml目录中所做的更改。现在每次我git status,我得到

git add lib/generators/haml没有效果。我真的只想拥有文件,而不是子模块,但我发现子模块无法摆脱:

额外git add的 s 是没用的。如果我尝试git rm -rf lib/generators/haml,我会得到

它只是不会死!我查找了如何删除 submodules,但在这种情况下,没有.submodules文件,也没有提及.git/config. 然而,如果我跑步git submodule update,我会得到

我删除了目录,但我得到了相同的结果!这是怎么回事?我是否需要创建一个.gitmodules文件来删除子模块?