Git - 在子模块 'git status' 中没有像在根仓库中那样提供 "is up-to-date" 信息
Git - in submodule 'git status' does not give "is up-to-date" info as in root repo
我有一个带有子模块的 git 仓库。
在根仓库中,git status
给出了分支与远程分支相比的状态。例如:
On branch develop
Your branch is up-to-date with 'origin/develop'.
但是在子模块仓库中,我没有第二行。
如何在所有子模块中获取此信息?谢谢。
当您使用 Git 个子模块时,您的子模块的状态将默认为分离 HEAD。
当你运行 git submodule update
时,无论是第一次还是其他人为子模块推送了新的提交,Git 都会检查根项目的sha1说子模块应该在。
例如
> git submodule update
> cd <submodule>
> git status
HEAD detached at 59fe3c5232
nothing to commit, working directory clean
现在,我可以使用 git log
:
查看更多信息
> git log --all --decorate --graph --format=oneline
* 59fe3c5232 (HEAD, origin/master, master) Commit details
* 8762eca8d9 Older commit
...
当有分支时,该日志会更有趣:查找 HEAD
以查看您所在的位置。
以我的示例为例,如果我现在在子模块内执行 git checkout master
,我仍处于根存储库预期的提交中,但我也在跟踪子模块内的主分支。
> git checkout master
> git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
但是,如果我要签出不是根存储库预期的提交,那么根存储库将认为需要提交更改。 (在根仓库中执行 git diff
或 git status
以查看。)
如果团队中的其他人向子模块推送提交,下次我更新根存储库并执行 git submodule update
时,我将最终回到分离头模式。
如果我真的在处理那个子模块,我只会费心检查子模块中的一个分支。
我有一个带有子模块的 git 仓库。
在根仓库中,git status
给出了分支与远程分支相比的状态。例如:
On branch develop
Your branch is up-to-date with 'origin/develop'.
但是在子模块仓库中,我没有第二行。 如何在所有子模块中获取此信息?谢谢。
当您使用 Git 个子模块时,您的子模块的状态将默认为分离 HEAD。
当你运行 git submodule update
时,无论是第一次还是其他人为子模块推送了新的提交,Git 都会检查根项目的sha1说子模块应该在。
例如
> git submodule update
> cd <submodule>
> git status
HEAD detached at 59fe3c5232
nothing to commit, working directory clean
现在,我可以使用 git log
:
> git log --all --decorate --graph --format=oneline
* 59fe3c5232 (HEAD, origin/master, master) Commit details
* 8762eca8d9 Older commit
...
当有分支时,该日志会更有趣:查找 HEAD
以查看您所在的位置。
以我的示例为例,如果我现在在子模块内执行 git checkout master
,我仍处于根存储库预期的提交中,但我也在跟踪子模块内的主分支。
> git checkout master
> git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
但是,如果我要签出不是根存储库预期的提交,那么根存储库将认为需要提交更改。 (在根仓库中执行 git diff
或 git status
以查看。)
如果团队中的其他人向子模块推送提交,下次我更新根存储库并执行 git submodule update
时,我将最终回到分离头模式。
如果我真的在处理那个子模块,我只会费心检查子模块中的一个分支。