为了便于讨论,假设我在github上有两个repos:foo_top和bar_submodule。正如命名bar_submodule所建议的那样是foo_top的子模块。
我将两个repos克隆到我的本地工作目录中。最近我进入了bar_submodule,创建了一个新分支并进行了更改,然后将其推送到遥控器。
当我进入foo_top并执行
时git status
我看到一条消息说我没有提交本地更改:
modified: deps/bar_submodule (modified content)
所以我做了差异并看到:
diff --git a/deps/bar_submodule b/deps/bar_submodule
--- a/deps/bar_submodule
+++ b/deps/bar_submodule
@@ -1 +1 @@
-Subproject commit e851c59f8262bfbd8c2e1c0d3471494cf6c8475f
+Subproject commit e851c59f8262bfbd8c2e1c0d3471494cf6c8475f-dirty
-dirty部分让我感到困惑。在bar_submodule repo中,在我完成工作的分支上,我看到了提交的有效sha。我期待sha出现在-dirty版本所在的git diff的输出中。
如果我进入deps / bar_submodule并在那里做一个git diff,我会看到我在其他repo中所做的更改需要添加。
有人告诉我只是从foo_top repo的根目录做git add deps/bar_submodule
我试过但没有改变 - 没有任何东西可以添加/提交/推送,而git diff的结果没有改变。
我有几个问题: