问题标签 [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 投票
29 回答
777045 浏览

git - 如何通过 HTTP 代理从 Git 存储库中提取?

注意:虽然描述的用例是关于在项目中使用子模块,但这同样适用于git clone通过 HTTP 的存储库的正常情况。

我有一个受 Git 控制的项目。我想添加一个子模块:

但我明白了

我设置了 HTTP_PROXY:

我什至有一个用于 http 代理的全局 Git 设置:

有没有人通过代理获得 HTTP 提取以始终如一地工作?真正奇怪的是,GitHub 上的一些项目运行良好(awesome_nested_set例如),但其他项目始终失败(例如rails )。

0 投票
2 回答
6180 浏览

git - 如何更新包含子模块的 git repo?

过了一段时间,我想更新我的 git repo,然后出了点问题。摆脱这种情况的正确方法是什么?

0 投票
10 回答
78994 浏览

git - 一个目录中有两个 git 存储库?

是否可以在一个目录中有 2 个 git 存储库?我不认为,但我想我会问。基本上,我想检查我的主目录配置文件(例如 .emacs),这些文件应该在我工作的所有机器上都是通用的,但是有一个本地文件(例如 .emacs.local)的第二个存储库,其中包含机器特定的配置。我能想到的唯一方法是将本地配置放在子目录中,并从主 git 存储库中忽略该子目录。还有其他想法吗?

0 投票
2 回答
1282 浏览

git - 使用 Git,子树合并具有子模块的外部项目的最佳方法是什么?

我正在使用 Git 存储库来存储与我正在开发的网站相关的所有内容。该存储库包含与该站点相关的所有文件,包括文档、模型、原始分层图像等,以及我放在www子目录中的 Web 根目录。

我现在想开始将我选择使用的 CMS 与项目的其余部分集成;CMS 是一个开源项目,它也由 Git 管理(如果重要的话,托管在 GitHub 上)。显然 CMS 需要在www子目录中,但它不会是唯一的东西 - 会有 CSS 文件、图像、CMS 模板等等等。因此,我选择了使用子树合并策略将外部项目添加到我的存储库。因为我可能在某个时候想要修改原始项目,并回馈更改,所以我从 GitHub 克隆了 CMS 存储库,并从我的克隆中完成了子树合并。

问题是,外部项目(即CMS)有我想要包含的子模块。确保子模块集成到主项目中的最佳方法是什么?我是否必须为每个子模块进行子树合并?

我不太可能想要修改子模块,但我可能会修改一两个。

0 投票
6 回答
15876 浏览

git - 使用 Git 的项目中的项目

如何设置 Git 项目以包含其他项目?

例如。我正在开发一个在线地图应用程序。我们开发了一个 GPS 工具和 SF 的一套装备。我们同时开发了一个 Python 地理映射脚本和一个不同的关注点(只关心地理映射)。我们自己的核心文件将两者结合起来,并在它们的基础上构建我们需要的应用程序。

每个项目都必须单独存在——对 GPS 感兴趣的人只对 GPS 感兴趣——但包含所有其他项目的“父”项目必须作为项目访问。

我花了一些时间试图理解子模块,但它们似乎对所需的东西有太多的独立性。

此外,如果可能的话,如果这些项目中的每一个都可以包含一个或两个重叠的脚本,那就太好了。一个 Git 项目是否可以包含一个不属于其“根”的文件,以便当任何一个团队更新该文件时,双方都可以受益?

这对 Git 可行吗?与水银?主机(GitHub、Gitorious)重要吗?

我有使用 Subversion 作为“父级”的想法——忽略 .git 文件夹,并将 Git 用于项目(忽略 .svn 文件夹)——但这只是最后的手段。

编辑:

解释为什么我不想要子模块:

  1. 用户下载时,zip 不包含子模块(此处此处)。当甚至合作者尝试设置项目时也是如此。这是一个表演终结者。
  2. 子模块被冻结 - 它们不会(轻松)获取所指向的项目的最新版本。
  3. 下面的精彩答案和NoPugs的独白中指出的其他原因。

子树合并(由 Paul 介绍给我,如下)不会:很难从合并到的项目中更新 [子树] 的源,并且该源必须位于“根”文件夹之外该项目。作为一个网络应用程序,我的所有页面都必须在内部链接到其中的一个文件夹,并且直接在该文件夹中完成测试和更新。(希望这对其他人来说清晰且有用。)

仍在研究建立“远程分支”,但仍然欢迎其他想法。

0 投票
3 回答
21068 浏览

git - 如何在维护历史记录的同时将单个目录从 git 存储库移动到新存储库?

我继承了一个 git 存储库,其中包含不同目录中的多个项目。我想将存储库拆分为新的单独存储库,每个项目一个,然后让主存储库将项目包含为子模块。如果可能的话,我想在保持各个项目的修订历史的同时完成所有这些工作。

我可以为每个项目克隆存储库并每次删除所有其他项目,但是有更好的方法来避免在每个新项目存储库中都有克隆的历史记录吗?

0 投票
9 回答
143411 浏览

git - 如何管理与 git 子模块的冲突?

我有一个 git 超级项目,它引用了几个子模块,我试图锁定一个工作流程,让我的项目成员在其中工作。

对于这个问题,假设我的超级项目被调用supery并且子模块被调用subby。(然后是我正在尝试做的事情的简化......我实际上并没有将分支用于版本,但我认为最容易提出问题。)

我的 master 分支将 git 项目supery的标签作为子模块引用。的分支调用并将子模块的引用更改为指向 的标签。v1.0subbysuperyone.onev1.1subby

我可以毫不费力地在这些分支中的每一个中工作,但是如果我尝试one.one使用来自分支的更改来更新分支,master我会收到一些冲突并且我不知道如何解决它们。

基本上在分支中运行一段git pull . master时间后subby,它看起来像是创建了额外的子模块。

在拉/合并之前,我git submoduleone.one分支获得了所需的响应:

但是在拉取之后,它会在我运行时添加额外的子模块git submodule

如何删除/忽略不需要的子模块引用并提交我的冲突和更改?或者是否有一个参数可以与我的原始参数一起使用,git pull它会忽略我的子模块?

0 投票
9 回答
352687 浏览

git - 如何更改 git 子模块的远程存储库?

我创建了一个带有子模块的 git 存储库。我能够告诉子模块本身更改其远程存储库路径,但我不确定如何告诉父存储库如何更改子模块的远程存储库路径。

如果我有点不走运并且必须手动执行操作,我不会感到惊讶,因为即使删除子模块也不容易。

0 投票
2 回答
3782 浏览

git - git 子模块是在工作副本中拥有工作副本的唯一安全方法吗?

在我的场景中,我有一个程序可以分析数据输入文件并生成其他数据输出文件。我想对程序进行版本控制,并且我想对数据文件进行版本控制,并且根据偏好,我希望在程序的工作副本中拥有数据文件的工作副本。我希望程序和数据分别进行版本控制以减少“噪音”。该程序不依赖于数据文件。

如果我使用 git 子模块,那么当数据目录中发生事情时(我认为是提交的更新),程序的版本控制会注意到子模块有更新。如果程序依赖于数据,这将很有用,但事实并非如此。

在这种情况下,是否可以在不使用 git 子模块的情况下在另一个工作副本中拥有一个工作副本?

0 投票
5 回答
32845 浏览

git - 如何提取 git 子目录并从中制作子模块?

几个月前我开始了一个项目,并将所有内容都存储在一个主目录中。在我的主目录“Project”中有几个包含不同内容的子目录: Project/paper 包含用 LaTeX 编写的文档 Project/sourcecode/RailsApp 包含我的 rails 应用程序。

“项目”是 GITified,并且在“paper”和“RailsApp”目录中都有很多提交。现在,由于我想为我的“RailsApp”使用 Cruisecontrol.rb,我想知道是否有一种方法可以在不丢失历史记录的情况下从“RailsApp”中创建一个子模块。