- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在另一个模块中有一个git子模块,通过git submodule add <...>
(从父repo发出的命令)添加,因此.gitmodules
文件在父repo中自动生成。
假设我对子模块进行了更改(编辑:不提交这些更改),然后导航回父模块并执行git add -A
操作,然后执行git status
,它会显示“未暂存提交的更改:子模块目录名…等等”。
我以为git会读取.gitmodules
文件(由父git生成!),意识到它是一个git子模块目录,因此当我向父级询问它的状态时,不要提到它的未分页状态?
最佳答案
这里发生的情况是,子模块存储库的提交与超级项目中记录的哈希ID不同。你在超级项目中运行的git status
告诉你这一点,但没有改变它,你的git add -A
显然也没有改变它。
最后一部分似乎是错的。当我做类似的事情,然后使用git add -A
时,我得到:
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: [submodule path]
$ git reset
Unstaged changes after reset:
M [submodule path]
$ git submodule update
Submodule path [path]: checked out '[hash]'
$ git status
On branch ...
nothing to commit, working tree clean
.gitmodules
。它告诉超级项目如果子模块还没有
git clone
d,如何克隆子模块。一旦子模块被克隆,它的主要工作就完成了。
.git/config
文件。它包含从
.gitmodules
文件复制出来的信息,如果
.gitmodules
文件不适合您自己的目的(这可能与负责
.gitmodules
文件的人不同),您可以根据需要更新这些信息。
.git/config
中的任何设置都会覆盖
.gitmodules
中的设置。否则这两个地方的设置基本上是等价的。
git submodule update --init
git clone --recursive
,git会为您执行此操作)。
.git
文件,该文件命名到克隆存储库的路径,或者在过去或使用旧式向后兼容模式时,包含实际的
.git
目录本身。)超级项目git
chdir
s进入该目录并告诉子模块git:
git checkout hash
hash
的提交中提取的文件,这主要使得外部git(超级项目)“完成”文件。但是有一个副作用,因为子模块本身就是一个完整的git存储库,包含了这意味着的一切。
HEAD
。这个
HEAD
现在被分离,子模块的存储库的当前提交是
hash
,因此它在子模块的索引和工作树中,这当然是我们想要的:子模块的工作树是所有子模块文件所在的超级项目中的路径。
git checkout
分支名称或任何其他按哈希ID提交,则子模块存储库的
HEAD
将更改。它要么附加到分支名称,要么指向另一个提交,仍然处于分离头模式。
git push
发送到某个上游。一旦完成了所有的提交和
git checkout
-ing,并且所有的事情都安排好了,您就应该从子模块工作树中爬回到您的超级项目中。
git status
和
git diff
将,默认情况下,这里还有大量的控制旋钮告诉您超级项目正在调用一些散列h,但是子模块签出了一些其他散列。(如果您为此设置了控制旋钮,它们可能也会告诉您子模块本身是否需要提交。)如果您希望下一个超级项目提交在该子模块的gitlink中记录此新提交哈希,则运行:
git add path-to-submodule
git add -A
应该做同样的事情,这就是为什么这是令人费解的)。这将更新索引中的gitlink以记录散列id s而不是h,以便下一个超级项目commit将在
git submodule update
命令中告诉子模块git:check out commit s,作为分离的头。
HEAD
匹配,子模块将不会在“未暂存以提交的更改”部分中列出。如果索引中gitlink中的哈希与
HEAD
中gitlink中的哈希不匹配,
git status
将在要提交的更改中列出子模块的路径。
关于git - 为什么git会说“未暂缓提交更改”并指示子模块文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54395666/
我正在编写一个 JS 程序,我有一个条件可以根据输入进行一些算术运算。如果我遇到操作类型为“add”,我需要将两个值相加;如果我得到“times”作为我的运算符值,我需要相乘。 我尝试使用基本的 if
我正在编写一个仅作为查看器的应用程序 - 无需创建、无需编辑、无需保存。 显然,那么,不会有自动保存,但是还有什么其他东西可以从 autosavesInPlace 返回 YES 改变世界,从而对观看者
Azure 开始出现以下错误: Unsupported token. Unable to initialize the authorization context. 每当我尝试更改我的应用程序时,我都
当我编写 out.println() 时,Eclipse 提示 out 无法解析。 我导入了 java.io.* 和其他 servlet 包。 最佳答案 只是在黑暗中拍摄,我认为这就是您正在寻找的出路
Azure 开始出现以下错误: Unsupported token. Unable to initialize the authorization context. 每当我尝试更改我的应用程序时,我都
是否可以执行类似的操作来检查 radio 表单是否未选中: if !($(this).find("input:checked")) {} 正确的语法是什么? 最佳答案 试试这个: $(this).fi
我正在尝试从表中选择行,其中 date 列值等于澳大利亚悉尼的当前日期 (UTC+10h)。服务器位于悉尼,因此我想使用 SYSDATETIME()。这是我的查询: SELECT * FROM dat
我听说 JavaScript 实际上并不像其他语言那样“指向”内存中的值(或对象,因为在 JS 中一切都是对象)。相反,JS 变量引用内存中的其他值/对象。这是真的?指向和引用之间的语义区别是什么?
我的计算机科学类(class)有一项作业,其中要求读取包含多个测试分数的文件,并要求我对它们进行求和并求平均值。虽然求和和求平均值很容易,但我在读取文件时遇到问题。老师说用这个语法 Scanner s
Java 的 XML 解析器似乎认为我的 XML 文档在根元素之后的格式不正确。但我已经用几种工具验证了它,但他们都不同意。这可能是我的代码错误,而不是文档本身的错误。如果你们能给我提供任何帮助,我将
根据这份文件: http://www.stroustrup.com/terminology.pdf l 值具有同一性且不可移动。 公关值是可移动的,但没有身份。 x 值具有同一性并且是可移动的。 关于
这个问题在这里已经有了答案: What does "atomic" mean in programming? (7 个答案) 关闭 5 年前。 我正在阅读 MongoDB 的 documentati
在 PHP 和 MySQL 中有没有一种方法能够比较 2 个不同的数组(列表)变量并说出有多少项是相同的 例如, $array1 = "hello, bye, google, laptop, yes"
本文来自 Effective Java Programs that use the int enum pattern are brittle. Because int enums are compil
C++ 中有一些特性是类型安全的,而另一些则不是。 C++ 类型安全示例: char c = 'a'; int *p = &c; // this is not allowed (compiler
我有一个 CS 课的作业,它说要读取一个包含多个测试分数的文件,并要求我对它们求和并取平均值。虽然求和和平均很容易,但我在读取文件时遇到了问题。老师说要用这个语法 Scanner scores = n
嗯.. 有时,PyDev 会说“ Unresolved 导入错误”。 在我的环境中 Python2.6.6 Eclipse3.7 PyDev2.2.2 错误是。 > Unresolved import
我正在向服务器发送请求,服务器正在处理请求并做出响应。但是在我的应用程序中,我收到了: Error Domain=NSURLErrorDomain Code=-1017 "cannot parse r
在我最近的一次讨论中,有人告诉我这样说是不正确的,因为 Ajax 已经是 Javascript。 上下文: “我如何在网页中 blablababal,这样它就不必刷新页面” 我的回答: “使用 Jav
下午好。 我一直在尝试使用 ffmpeg 将 .mpeg 拆分为一系列 .jpeg 图像。请注意,这是指定 here 的逆问题,但我面临的问题与该线程的作者面临的问题不同。 具体来说,我已经在我的 f
我是一名优秀的程序员,十分优秀!