问题标签 [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.
git - 试图找出在 git 中使用子模块的正确方法
我正在尝试在 git 中正确设置子模块,并且我想确保我正确使用它。
我有一个名为MyProject
. 我有一个二级存储库,其中包含我们所有的代码生成的数据访问,称为Data
. 我想设置Data
为MyProject
.
Data
除非有架构更改或小错误修复,否则很少更改。
假设我正在添加一些MyProject
需要更改架构的新功能。MyProject
通常我会创建一个被调用的分支NewFeature
并在那里签入我的所有更改,直到它准备好与 master 合并。我还想创建一个分支,以便在我的更改准备好合并之前Data
,任何架构更改都保持独立。Master
什么是正确的工作流程,或者甚至有一个?
谢谢!
git - 如何跟踪未跟踪的内容?
对于我原来的问题,请参见实线下方。
我的本地目录中有一个未跟踪的文件夹。当我运行时git status
,我得到:
当我输入git add vendor/plugins/open_flash_chart_2
然后再试git status
一次时,它仍然显示未跟踪。这是怎么回事?
以下是我最近半小时的简单总结:
发现我的 Github repo 没有跟踪我的
vendor/plugins/open_flash_chart_2
插件。具体来说,没有内容,它在文件夹图标上显示一个绿色箭头。试过了
/li>git submodule init
试过了
/li>git submodule add git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2
/li>git status
寻找在我的存储库/本地目录中命名的任何文件
.gitmodules
,但找不到。
我该怎么做才能让我的子模块正常工作,以便 git 可以开始正确跟踪?
这可能是无关的(我包括它以防它有帮助),但每次我输入git commit -a
而不是我通常的输入git commit -m "my comments"
时,它都会抛出一个错误:
我是 Github 的新手,尽管尝试浏览文档,但我还是被这些特殊问题难住了。谢谢你。
git - 单个文件作为 Git 子模块
我正在尝试确定 Git 存储库之间共享代码的最佳实践。
到目前为止,我显然已经遇到了看起来像它们 - 几乎 - 符合要求的子模块。我的项目是一个结构简单的 PHP MVC 框架:
- /应用程序
- 核心.php
- /核
哪里app
是包含应用程序特定控制器、模型、视图等的文件夹,而core
包含一般用途的文件夹,例如登录控制器。core.php
文件本身是所有请求的全局处理程序。
因此,我在这个 MVC 框架的所有部署中的共享代码是core.php
和core
.
我可以看到如何core
变成 Git 子模块,但不是core.php
.
这甚至可能吗?我是否需要重新构建我的框架以便core.php
驻留在core
文件夹中,以便我可以将整个文件夹作为子模块,还是有更好的方法?
git - 在 .gitmodule 中找不到不是子模块的路径的子模块映射
我有一个项目,其中有一个子模块lib/three20
我的.gitmodule
文件如下所示:
我过去已经克隆了它而没有错误,(git submodule init
后跟 a git submodule update
)并且它已经工作了一段时间。
我试图将它克隆到一台新机器上,现在我得到了这个错误git submodule init
:
该路径只是 Xcode 中的一个空文件夹,我用来存放其他目录中的项目。它不是.gitmodules
文件的一部分,所以我看不出它是从哪里获得这条路径的。
有任何想法吗?
git - 回顾性地将 --recursive 添加到 git repo
如果你git clone
有--recursive
,你也可以得到所有的 git 子模块。
如果我在克隆时忘记添加这个神奇的标志(可能发生),我现在该如何去获取任何子模块?
此外,如何将递归标志设置为未来克隆的默认值?
perl - 如何卸载 Perl 模块?
我在我的 Linux 机器上安装了一些 Perl 模块。如果我输入perldoc perllocal
它会显示安装在我的机器上的 Perl 模块列表,但现在我不需要这些 Perl 模块,所以我想删除它们。
有谁知道如何卸载或删除安装在 Linux(debian 2.6.26)中的那些模块?
git - Moving submodules with Git
Is there any way to move submodules within your superproject without removing them first and re-adding them ?
git - 与 git 子模块共享工作树
假设我有一个Common
可以独立使用的库,并且被项目P1
和使用P2
,所以我想要的树看起来像
当我在 中进行更改时/Common
,我希望能够在提交之前使用P1
和测试它。P2
使用通常的git submodule
命令集,我必须从 提交/Common
,推送到远程,然后从两者中拉取/P1/Common
和/P2/Common
。如果提交破坏了某些内容,则无法对其进行修改,因为错误的更改已经发布。或者,我可以git remote add quicktest /Common
在/P?/Common
不接触远程服务器的情况下进行拉取。但这有很多不一致的机会,并且从中删除损坏的提交/P?/Common
以便可以在/Common
.
我宁愿在开发过程/Common
中使用P1
and中的工作树P2
,但我无法创建/P1/Common
符号链接,/Common
因为git submodule
将符号链接识别为与目录不同。大多数文件系统不允许硬链接目录。我可以使用硬链接所有文件
在添加新文件之前效果很好,/Common
在这种情况下需要重复此过程。两者都有优雅的方式吗
- 继续
git clone --recursive git://remote/P1.git
为最终用户工作,并且 - 让我可以轻松地测试
/Common
使用P1
和P2
?
git - Git:合并和子模块
假设我在 RepoX 中有两个分支,称为 BranchA 和 BranchB。RepoX 还有一个名为 SubmoduleY 的子模块。
BranchA 在修订版“abc”具有 SubmoduleY,BranchB 在修订版“def”具有 SubmoduleY。
假设我想将 BranchA 合并到 BranchB,但我想让 BranchB 的 SubmoduleY 指向其原始版本的“def”。我看到了几种方法:
方法一:
- 结帐分行 B.
- 将 SubmoduleY 移动到修订版 'abc' 以使实际的合并变得轻松(我们现在不想在子模块级别进行任何合并)。
- 提交 SubmoduleY 的新修订版(我们不能让它浮动以进行合并)。
- 将分支 A 合并到分支 B。解决任何冲突。
- 将 SubmoduleY 移回修订版“def”。
- 提交 SubmoduleY 的新版本。
- 将更改推送到主仓库。
方法二:
与方法 1 相同,但不执行第 6 步,而是变基并删除第 3 步中额外的子模块提交。
两者似乎都有令人讨厌的缺点:
方法 1 将两个额外的提交放入历史记录。
方法 2 忘记了与子模块修订有关的任何更改,因为这些提交被删除了。因此,以后的任何合并都将不得不再次处理一些问题。
有没有更好的办法?
git - 如何处理嵌套的 Git 存储库
我想与 git 分享我的 vim 配置。但是一些 vim 插件是从 git 存储库安装的
像这样的目录
我希望我的存储库最小,所以我不想在我的 git 中添加 xxxx/.git yyyy/.git,如果我不添加它们,干净的提取将不包含 xxxx/.git,所以我无法更新 xxxx 和yyyy。
顺便说一句,我怎样才能做得好,我可以在一个命令中更新 config,xxxx,yyyy 吗?