我有一个带有子模块的项目,该子模块指向无效的提交:子模块提交仍然是本地的,当我尝试从另一个repo获取它时,我得到:
$ git submodule update
fatal: reference is not a tree: 2d7cfbd09fc96c04c4c41148d44ed7778add6b43
Unable to checkout '2d7cfbd09fc96c04c4c41148d44ed7778add6b43' in submodule path 'mysubmodule'
Run Code Online (Sandbox Code Playgroud)
我知道子模块HEAD应该是什么,有什么办法,我可以在当地改变这一状况,在不脱离回购推确实已经提交2d7cfbd09fc96c04c4c41148d44ed7778add6b43?
我有一个~/.janus/带有一堆子模块的git repo .我想添加一个子模块~/.janus/snipmate-snippets/snippets/,但是当我git submodule add <git@github.com:...>在snipmate-snippets目录中运行时,我收到以下错误消息:
You need to run this command from the toplevel of the working tree.
Run Code Online (Sandbox Code Playgroud)
所以问题是:如何在snipmate-snippets目录中添加子模块?
我有一个Git媒体存储库,我将保存我将在各种项目中使用的所有JavaScript和CSS主文件和脚本.
如果我创建一个位于其自己的Git存储库中的新项目,我如何在我的新项目中使用来自我的媒体存储库的JavaScript文件,从而使我在进行更改时不必更新脚本的两个副本?
使用git子模块和子树之间有什么概念上的区别?
每种情况的典型情况是什么?
我的项目结构
ProjectA
-FrameworkA (submodule)
--Twig (submodule of FrameworkA)
Run Code Online (Sandbox Code Playgroud)
我如何递归更新子模块?我已经尝试了一些git命令(在ProjectA上)
git submodule foreach git pull origin master
Run Code Online (Sandbox Code Playgroud)
要么
git submodule foreach --recursive git pull origin master
Run Code Online (Sandbox Code Playgroud)
但是不能拉扯Twig的文件.
我有一个项目A,它是一个库,它在项目B中使用.
项目A和B在github BUT上都有一个单独的存储库,我们有一个A的子模块.
我在库中编辑了一些类,这是在repo A中,我推送了远程仓库,所以我们更新了库(repo A).
这些更新不反映子模块引用先前提交的"引用"(子模块)....我应该怎么做才能更新git上的子模块?
我有一个git子模块(RestKit),我已经添加到我的仓库.
我不小心改变了那里的一些文件,我想回到源版本.为了做到这一点,我试着跑
Mac:app-ios user$ git submodule update RestKit
Run Code Online (Sandbox Code Playgroud)
但正如你在这里看到的,这不起作用,因为它仍然是"修改内容":
Mac:app-ios user$ git status
...
# modified: RestKit (modified content)
Run Code Online (Sandbox Code Playgroud)
甚至
Mac:app-ios user$ git submodule update -f RestKit
Run Code Online (Sandbox Code Playgroud)
不会还原本地修改的文件.
如何重置该子模块的内容?
在我天真的时候,我已经设置了一个git子模块并将其视为Subversion外部 - 即它现在充满了我刚才意识到的未经提交或推送到任何地方的变化.
是否有一些简单的方法将子模块更改提交/推送回上游存储库?Git推荐的技术是什么,以这种方式在单独的(但链接的)存储库上同时进行开发?
我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
我有一个Git存储库,里面有几个子模块.如何git submodule init在运行后列出所有子模块的名称?
该git submodule foreach命令可以回显子模块的名称,但只有在检出后才能使用,这在init步骤之后没有发生.链中有更多的步骤需要在签出之前发生,我不希望将子模块的名称硬连接到脚本中.
那么是否有一个Git命令来获取所有当前已注册但尚未检出的子模块的名称?