问题标签 [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 子模块链接
因为我不想为简单易用的 github.com 私人托管花费 +12 美元,所以我将很多代码库放在共享托管帐户上的小型存储库中。这使我可以拥有尽可能多的代码仓库。
由于这些存储库不占用任何资源,因此我还在该帐户上放置了几个非常轻量级的站点,以最大限度地提高我的使用率。这些站点实际上使用其中一些相同的代码库作为其项目的子模块。
因此,我通过 ssh 为每个 repo 和站点推送/拉取代码。网站本身只设置了几个指令,也会拉取这些子模块。
所以我在我的电脑上有一个 simplesite.tld 项目,其子模块如下所示:
然后我将代码推送到 simplesite.tld 并通过 SSH 登录到共享主机并更新 simplesite.tld 模块
但它要求我输入“用户”的 SSH 密码,以便登录并获取 repo 代码。这只是一个烦恼,因为 repo 在同一台服务器上。
那么是否有更好的子模块链接可以让外国计算机(如我的 PC)和同一个硬盘驱动器中的项目都可以使用?
git - 如何在带有子模块的存储库上执行 git checkout?
假设我有一个X
带有子模块的存储库A
。现在假设我想要X
两个分支:master 和 development。我希望 master 有A
与 development 不同的版本。如何在这些分支之间来回切换?
我已经设置了一个存储库来执行此操作(但使用真实姓名而不是假名!)。问题是,每当我git checkout master
从开发中进行操作时,我都会得到以下信息:
看起来它并没有A
退回到 master 引用的提交。有没有办法解决?两者似乎都没有改变任何东西git submodule sync
。git submodule update
git - 我在 GitHub 上的目录发生了什么变化?
我在我的 git 存储库中添加了一个新的子目录:
然后提交了这个并将其推送到 GitHub,但似乎我已经提交了一个符号链接/快捷方式,而不是其中的实际目录和文件。
见这里:http: //github.com/G4EGK/RSS-Reader
知道什么是“饲料”吗?
我想删除它并正确添加我的文件。我尝试了以下方法,但git status
说没有任何改变:
要删除提要,我是否运行以下命令?
更新
谢谢韦斯。
git filter-branch
没有从我的仓库中删除这个子模块(当我查看时它仍然被跟踪git status
)
为了消除这个错误,我恢复了最后两次提交(我尝试添加提要类)。
使用了命令:
然后我删除了提交 2 和 3,留下了第一行(我在 4 月 2 日的提交),保存了我的更改(:wq)并强制推送到 GitHub。
现在我的 GitHub 存储库又回到了添加提要之前的位置。
我最初的错误是在最初添加提要时忘记在末尾使用斜杠。我应该用
git - git 参考公共目录/repo
项目布局:
project_a 和 project_b 都需要包含共享文件夹。使用 svn,我们使用 svn:externalsand 效果很好,因为 svn 可以引用子目录(也可以使用相对路径)。但是,我们转移到了 git,它似乎不支持签出子目录。
我们现在的解决方案是将project_a、project_b和shared都放在不同的git repos中,并在project_a和project_b中使用git子模块。然而,这似乎比一个带有 svn:externals 的单一 svn 存储库要复杂得多。处理git中常见元素的正确方法是什么?
编辑:共识是子模块是要走的路。但是用了一天,感觉用起来很不友好。
在对共享文件进行更改后,我必须:
- 提交共享中的更改
- 推动份额变化
- 在父目录中再次添加共享目录
- 推送父目录
与 svn 中的单个提交相比,这似乎要复杂得多。缺少其中一个步骤会导致版本控制混乱。我在这里错过了什么吗?
ruby-on-rails - 在两个或多个 Rails 应用程序之间共享代码...... git 子模块的替代品?
我们有两个独立的 rails_appfoo/
和bar/
(分开是有充分理由的)。它们都依赖于文件夹中的某些模型等,当前与和common/
平行。foo
bar
我们当前的 svn 设置用于svn:externals
共享common/
. 这个周末我们想试试 git。经过大量研究,似乎解决此问题的“犹太洁食”方法是使用git submodule
. 我们在将foo
,分离到单独的存储库后得到了它的工作bar
,common
但随后实现了所有附加的字符串:
- 始终在提交父模块之前提交子模块。
- 总是在推送父模块之前推送子模块。
- 在提交之前确保子模块的 HEAD 指向一个分支。(如果您是 bash 用户,我建议使用 git-completion 将当前分支名称放在提示符中。)
- 在切换分支或拉取更改后始终运行“git submodule update”。
所有这些陷阱比add
, commit
,更复杂push
。我们正在寻找common
在 git 中共享的更简单方法。这家伙似乎在使用git subtree
扩展方面取得了成功,但这与标准 git 有所不同,而且看起来仍然没有那么简单。
考虑到我们的项目结构,这是我们能做的最好的吗?我对 Rails 插件/引擎知之甚少,但这似乎是一种可能的 RoR 式共享库的方式。
提前致谢。
ruby-on-rails - 在两个 Rails 项目之间共享模型 - 使用 git 子模块?
我有一个 Rails 网站,它分为两个独立的项目——公共网站和管理网站。
由于两个站点都使用相同的数据库,因此模型在应用程序之间共享(实际上现在它们是重复的)。我在这里遇到的问题是,当公共项目中发生模型更新时,我需要将更改复制到管理项目中。
我环顾四周,注意到有一个问题的答案建议使用 svn:external 或 git submodule,但我不完全确定如何执行此操作。
本质上,我的目标是能够仅在一个地方进行更改,将这些更改提交到git,然后在我需要更新时能够在另一个项目中提取更改。
git - git子模块,忽略错误的目录
我是 git 新手,但在尝试之前花了很多时间阅读文档和 git 子模块的陷阱。我有一个问题,我觉得 - 可能是天真的 - 是 git 中的一个错误:
我有一个项目,在那个根目录中我有一个插件文件夹,其中有一个名为 myplugin 的子模块。我添加了它
效果很好。一切都正常工作了大约一周。我使用的框架支持覆盖插件内的视图。这些必须存储在
问题是,git认为覆盖文件夹也在:
Git 不会在我的 views/plugins/myplugin 目录中提交任何内容,它不会跟踪文件,无论我做什么,我都无法忽略它。在 Github 中,它显示为绿色箭头,表示它是一个子模块,当我切换分支时,该目录继承了子模块的方式
我已经拉了一个多小时的头发并且没有任何进展......非常感谢任何帮助!
git - Git 子模块或 fork
我在 github 中有一个私人仓库,它是我的 cms 的完整源代码。现在我有一些本地客户,我想使用相同的代码库,但主题不同。将原始项目分叉为每个项目是否更好。或者使用子模块并为每个客户创建一个新的仓库?
在每个站点完成后,我想主题文件不会有太大变化,但是当发现错误时需要从主存储库中提取更改。
django - 在 git 项目中创建子模块
我有一个 Django 项目,它目前托管在 GitHub 中并且是私有的。我希望将它的许多有用部分转移到一个开源项目中。我想我需要使用“子模块”的东西,但不幸的是我不知道如何操作这些。
请有人可以帮助我:)
乔
git-submodules - 在 .NET 解决方案中正确使用子模块
我有一个我用这样的结构编写的库:
我想将此作为SolutionB
. 如果我将整个结构用作子模块,它会得到一堆SolutionB
不关心的东西;它不在乎SolutionA.sln
;它不在乎Tests\
;它不在乎Tools\
。真的,SolutionB
只在乎Core\
。
看起来我需要一个单独的存储库Core\
。那么通常的做法是为 .NET 解决方案提供两个存储库,其源被其他解决方案使用?一个只用于(非测试)代码本身(加上所需的库),一个用于测试工具和解决方案文件?