在git子模块中显示未推送的提交

行李

我知道有一些问题已经围在那里为这一个就我而言:

假设我有一个带有子模块SR2的仓库R1。

  1. 我在SR2中执行子模块提交。
  2. 我在R1中提交子模块更新
  3. 我在R1中推送子模块更新
  4. 我忘了推SR2

然后,将克隆存储库R1的任何人都会遇到reference is not a tree错误,因为显然子模块提交修订版仅在本地可用。

如果随后输入git statusR1存储库,则不会警告我子模块位于远程存储库之前的事实。

是否有任何递归检索状态的方法?

您可以尝试以下git submodule foreach命令

git submodule foreach --recursive 'git status  && echo'

您还可以使用其他命令在此答案中显示正在进行更改的子模块的状态


OP Cqnqrd提到的评论

为了具有更好的可读性,我对以下别名进行了一些调整:

多行:

gss_command='git -c color.status=always status -s | \
             sed "s/^\(.*\)/\t\1/g" && git branch -v | \
             grep -E "ahead|behind" | \
             sed -r "s/[ *]\s(\S*).*(\[(ahead|behind).+?\]).*/\t\1 \2/g"' 

alias gs="git rev-parse --show-toplevel && \
          $gss_command && \
          git submodule foreach --recursive '$gss_command'"

单线:

gss_command='git -c color.status=always status -s | sed "s/^\(.*\)/\t\1/g" && git branch -v | grep -E "ahead|behind" | sed -r "s/[ *]\s(\S*).*(\[(ahead|behind).+?\]).*/\t\1 \2/g"' 

alias gs="git rev-parse --show-toplevel && $gss_command && git submodule foreach --recursive '$gss_command'"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何查看git子模块指向哪个提交

来自分类Dev

Git-子模块,跟踪要使用的子模块提交

来自分类Dev

当它是GitHub库时,Git子模块推送?

来自分类Dev

如何在推送时自动部署git repo的子模块?

来自分类Dev

在git中具有子模块的浅表克隆,如何使用指向提交而不是最新提交?

来自分类Dev

无法通过子模块推送Git存储库的提交

来自分类Dev

git子模块签出相同的提交

来自分类Dev

git子模块添加仅选择最新提交

来自分类Dev

Git子模块状态-如何显示子模块中的当前分支

来自分类Dev

Git-如何在子模块中删除未跟踪的文件夹

来自分类Dev

Git:如何还原替换子模块的符号链接提交?

来自分类Dev

将git子模块更改推送到我自己的仓库中

来自分类Dev

如何将子模块中未提交的更改移动到新分支

来自分类Dev

Azure DevOps中的Repos无法显示git子模块吗?

来自分类Dev

Git:自动提交具有相同消息的子模块

来自分类Dev

git子模块未推送到生产

来自分类Dev

使用特定的提交编号添加git子模块

来自分类Dev

Git子模块显示新的提交,子模块状态表明什么都没提交

来自分类Dev

Git子模块的提交与主仓库中的标签匹配

来自分类Dev

Git提交未推送

来自分类Dev

git如何知道在哪个提交中检出子模块?

来自分类Dev

当它是GitHub库时,Git子模块推送吗?

来自分类Dev

git子模块签出相同的提交

来自分类Dev

Git子模块和孤立的提交

来自分类Dev

Git-如何在子模块中删除未跟踪的文件夹

来自分类Dev

Git:跟踪子模块中的分支,但在其他子模块中提交(可能是嵌套的)

来自分类Dev

在git版本2中推送子模块

来自分类Dev

`git submodule update` 不会检出子模块中的提交

来自分类Dev

子模块上的超级项目提交不显示“From .. To”

Related 相关文章

  1. 1

    如何查看git子模块指向哪个提交

  2. 2

    Git-子模块,跟踪要使用的子模块提交

  3. 3

    当它是GitHub库时,Git子模块推送?

  4. 4

    如何在推送时自动部署git repo的子模块?

  5. 5

    在git中具有子模块的浅表克隆,如何使用指向提交而不是最新提交?

  6. 6

    无法通过子模块推送Git存储库的提交

  7. 7

    git子模块签出相同的提交

  8. 8

    git子模块添加仅选择最新提交

  9. 9

    Git子模块状态-如何显示子模块中的当前分支

  10. 10

    Git-如何在子模块中删除未跟踪的文件夹

  11. 11

    Git:如何还原替换子模块的符号链接提交?

  12. 12

    将git子模块更改推送到我自己的仓库中

  13. 13

    如何将子模块中未提交的更改移动到新分支

  14. 14

    Azure DevOps中的Repos无法显示git子模块吗?

  15. 15

    Git:自动提交具有相同消息的子模块

  16. 16

    git子模块未推送到生产

  17. 17

    使用特定的提交编号添加git子模块

  18. 18

    Git子模块显示新的提交,子模块状态表明什么都没提交

  19. 19

    Git子模块的提交与主仓库中的标签匹配

  20. 20

    Git提交未推送

  21. 21

    git如何知道在哪个提交中检出子模块?

  22. 22

    当它是GitHub库时,Git子模块推送吗?

  23. 23

    git子模块签出相同的提交

  24. 24

    Git子模块和孤立的提交

  25. 25

    Git-如何在子模块中删除未跟踪的文件夹

  26. 26

    Git:跟踪子模块中的分支,但在其他子模块中提交(可能是嵌套的)

  27. 27

    在git版本2中推送子模块

  28. 28

    `git submodule update` 不会检出子模块中的提交

  29. 29

    子模块上的超级项目提交不显示“From .. To”

热门标签

归档