gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:49:41 25 4
gpt4 key购买 nike

我知道那里已经有一些问题了 this one .就我而言:

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

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

那么任何克隆存储库 R1 的人都会得到一个 reference is not a tree 错误,因为显然子模块提交修订目前仅在本地可用。

如果我随后在 R1 存储库中键入 git status,没有任何关于我的子模块在远程存储库之前的事实的警告。

有没有办法递归地检索状态?

最佳答案

你可以试试 git submodule foreach command :

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

您还有其他命令可以显示 this answer 中子模块的状态, 进行中的更改。


OP Cqnqrd提及 in the comments :

为了更好的可读性,我将其稍微调整为以下别名:

多行:

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'"

关于git - 在 git 子模块中显示未推送的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24547810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com