git - git 子模块在父目录中显示为已更改
问题描述
我在我的项目中将一个库作为git 子模块签出,我经常在库中进行更改。每次我提交该更改git status
时,父 repo 中的后续内容都会显示子模块已更改。我也使用__git_ps1
,所以父目录提示显示有未提交的更改。
parent-project (master *) $ git diff
diff --git a/my-submodule b/my-submodule
index 5eb2e9f..fd40630 160000
--- a/my-submodule
+++ b/my-submodule
@@ -1 +1 @@
-Subproject commit 5eb2e9fdcb85ab5a1f57e622b17cc76e5af749b7
+Subproject commit fd406308851b5521980f4578960c428200c66371
我知道两种选择:
git commit submodule
来自创建不必要提交的父级,或- 删除并重新添加似乎有点矫枉过正的子模块。
有没有办法告诉父 repo将子模块 ref 更新为最新的 master 并继续?我不想引用特定的 git 修订版,只是引用master的负责人或我选择的任何分支。
谢谢!
解决方案
有什么方法可以告诉父 repo 将子模块 ref 更新为最新的 master
是的,可以--remote
选择:
git submodule update --remote
继续前进?
好吧,...这仍然会更改子模块 SHA1 树,因此您仍然需要进行提交,但是只要您在父存储库中进行了自己的更改,就可以进行所述提交。
也许在本地你可以忽略它:
cd /parent/repo
git update-index --assume-unchanged -- submoduleFolder # no trailing slash
推荐阅读
- google-apps-script - 重复数据删除行的工作表脚本:意外行为
- java - 连接到 mysql 本地主机数据库
- java - 放心 - 是否可以在测试中发布然后获取响应?
- python - 如何使用带有两个参数的 lambda 来找到具有最高值的元素?
- python - 为什么我的图像显示为灰色方块?
- c++ - 可以在程序中多次定义 inline 或 constexpr 函数吗?
- python - Spark:获取预定义长度的组合
- c++ - 由于重新插入设备,如何测试 USB HID 句柄无效
- javascript - 用于多线程的 v8 Locker
- clojure - lang.LazySeq 不能转换为 IPersistantVector