欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > git 操作记录

git 操作记录

2025/4/3 2:08:39 来源:https://blog.csdn.net/NWH_CSDN/article/details/146643206  浏览:    关键词:git 操作记录

<1>、检查子模块是否在主分支上

git submodule foreach --recursive 'git fetch origin master &&[ "$(git rev-parse HEAD)" = "$(git rev-parse origin/master)" ] &&echo "✅ $name 一致" || echo "❌ $name 不一致"
'

使用 git submodule foreach --recursive 来遍历主项目中的所有子模块(包括嵌套的子模块),并对每个子模块执行一个特定的操作。

  1. git submodule foreach --recursive:
    • git submodule foreach:对每一个子模块执行后面的命令。
    • --recursive递归地遍历所有子模块,包括子模块中的子模块。
  2. 命令体:
    '[ "$(git rev-parse HEAD)" = "$(git rev-parse origin/master)" ] \
    && echo " 一致: $name" || echo "不一致: $name"'
    • $(git rev-parse HEAD):获取当前子模块所在分支的最新提交的哈希值。
    • $(git rev-parse origin/master):获取子模块远程 origin 仓库 master 分支的最新提交的哈希值。
    • [ "$(git rev-parse HEAD)" = "$(git rev-parse origin/master)" ]:比较这两个哈希值是否相等。如果相等,表示子模块的当前分支与远程 master 分支是同步的。
    • && echo " 一致: $name":如果上述比较结果为真(即哈希值相等),则输出 "一致: name",其中‘name是子模块的名称或路径(由git submodule foreach` 自动提供)。
    • || echo "不一致: $name":如果上述比较结果为假(即哈希值不相等),则输出 "不一致: $name"。
 

<2>、更新所有子模块到master分支

git submodule foreach 'git checkout master && git pull origin master'
# 确保你在主仓库的 master 分支上
git checkout master
git pull origin master
# 更新所有子模块到 master 分支
git submodule foreach 'git checkout master && git pull origin master'
1、解释
  1. git checkout master:切换到 master 分支。
  2. git pull origin master:从远程仓库拉取 master 分支的最新更改。
  3. git submodule foreach '...':对每个子模块执行指定的命令。
  4. git checkout master:在每个子模块中切换到 master 分支。
  5. git pull origin master:从远程仓库拉取 master 分支的最新更改。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词