如何在Git中检查和更新子模块修订指针

如何在Git中检查和更新子模块修订指针,git,git-submodules,tortoisegit,Git,Git Submodules,Tortoisegit,我有两个存储库“A”和“B”,它们共享第三个存储库“C”,作为“A”和“B”中的子模块 我的委托人是乌龟 如果我提交并推送子模块中的更改,并转到父存储库(“a”例如),然后右键单击->在Tortoise中提交,我可以看到标记为已更改的子模块文件夹。如果我提交并推动该更改,主存储库(“A”)将指向子模块的正确/最新版本。如果我没有提交更改,主存储库将指向更新之前的子模块版本 这有点令人困惑,当开发人员忘记更新父/主存储库中子模块的指针时,有时会导致问题 所以我的第一个问题是,如何使用命令行检查我的

我有两个存储库“A”和“B”,它们共享第三个存储库“C”,作为“A”和“B”中的子模块

我的委托人是乌龟

如果我提交并推送子模块中的更改,并转到父存储库(“a”例如),然后右键单击->在Tortoise中提交,我可以看到标记为已更改的子模块文件夹。如果我提交并推动该更改,主存储库(“A”)将指向子模块的正确/最新版本。如果我没有提交更改,主存储库将指向更新之前的子模块版本

这有点令人困惑,当开发人员忘记更新父/主存储库中子模块的指针时,有时会导致问题

所以我的第一个问题是,如何使用命令行检查我的主存储库指向的子模块的哪个版本

第二个问题是,如何手动编辑该修订以指向子模块的任意修订,并推动该更改

谢谢

1)

我建议你使用龟甲图形用户界面。转到
A/C
->TortoiseGit->Show Log->工作目录中的粗体版本

要使用命令行检查工作目录中的子模块版本

cd A
cd C
git log -n 1
要检查当前提交中的子模块修订,请转到
A
->>TortoiseGit->Repo浏览器->选择
C
,您可以在底部看到修订。 您还可以右键单击以显示日志或复制哈希

但命令行的方式并不直接:

cd A
git diff HEAD~N HEAD -- C
其中N是您认为对子模块修订有更改的提交数。 行
+Subproject commit
显示所需的子模块修订

(二)

  • 确保子模块的工作目录是干净的
  • 转到
    A/C
    ->陆龟注册->切换/签出->选择任何修订->确定
  • 转到
    A
    ->陆龟注册->提交->确保选中
    C
    ->确定