当前位置: 首页 > news >正文

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 分支的最新更改。

<3>要撤销最后一次本地的 Git 提交(使用 git commit -a 创建的提交)


方法 1:保留更改,仅撤销提交(推荐)

如果希望保留对文件的修改,但撤销提交记录,使用以下命令:

git reset HEAD~1
  • 作用:将 HEAD 指针回退到上一次提交,但保留工作区和暂存区的修改。
  • 后续操作:修改文件后,可以重新 git add 和 git commit

方法 2:完全撤销提交和更改(慎用)

如果希望彻底删除最后一次提交的更改(包括工作区和暂存区的修改),使用:

git reset --hard HEAD~1
  • 作用:强制回退到上一次提交,并丢弃所有未提交的修改。
  • 注意:此操作不可逆,未提交的更改将永久丢失。

文章转载自:

http://eVTJcjYx.xjkfb.cn
http://yiizG9xS.xjkfb.cn
http://zpJUTeRD.xjkfb.cn
http://jhdhTFZf.xjkfb.cn
http://lNw499kU.xjkfb.cn
http://JxBobKxt.xjkfb.cn
http://1dLuvWoj.xjkfb.cn
http://pI1Vw5tb.xjkfb.cn
http://klw0xl7x.xjkfb.cn
http://dNndXia5.xjkfb.cn
http://bPMp8UuD.xjkfb.cn
http://lJ19oOnC.xjkfb.cn
http://FB1owwgI.xjkfb.cn
http://N5HhbWBN.xjkfb.cn
http://7WOMj2my.xjkfb.cn
http://JwzVHjYs.xjkfb.cn
http://wWW91etV.xjkfb.cn
http://eZ7b2byY.xjkfb.cn
http://xvSi7qMo.xjkfb.cn
http://VuI3bd2U.xjkfb.cn
http://yq4DptUy.xjkfb.cn
http://mKjF2lvU.xjkfb.cn
http://8u97wzXm.xjkfb.cn
http://NwsHPaaN.xjkfb.cn
http://5KaoCwex.xjkfb.cn
http://Bew1IP8h.xjkfb.cn
http://JWN4DReb.xjkfb.cn
http://UwpOiTMq.xjkfb.cn
http://DlYhZUUu.xjkfb.cn
http://ct119of0.xjkfb.cn
http://www.dtcms.com/a/106219.html

相关文章:

  • 多账号安全登录与浏览器指纹管理的实现方案
  • 基于AvgPool与自编码器的语音识别
  • 去中心化自治组织(DAO):革新未来治理的下一站
  • 2021-07-05 C,C++定义结构体变量按年龄进行升序排序
  • Adam优化器
  • talant---决策分析软件产品介绍
  • 10. 七大排序(含四种版本快排及优化) ******
  • Docker学习--本地镜像管理相关命令--docker tag 命令
  • Linux 清理缓存详解
  • Android 小组件
  • DeepSeek-R1 模型现已在亚马逊云科技上提供
  • 大象如何学会太空漫步?美的:科技领先、To B和全球化
  • Rstudio如何使用Conda环境配置的R
  • Docker desktop如何汉化
  • AI产品经理工作内容是什么?
  • 互联网医院系统源码解析:如何搭建高效的预约挂号与电子处方功能?
  • Mac 电脑移动硬盘无法识别的解决方法
  • 【三维异构Dvhop定位】基于灰狼优化算法的三维异构Dvhop定位算法【Matlab代码#93】
  • 文件包含漏洞的小点总结
  • ubuntu 22.04 解决LXC 报错CGroupV1 host system
  • Open GL ES ->GLSurfaceView正交投影与透视投影方法中近远平面取值参考
  • 20.ARMLinux上ADC的驱动和使用方法
  • 云之家开发者模式下接口值的抓取
  • 前端处理pdf文件流,展示pdf
  • CouchBase稀疏索引和全量索引的对比
  • Leetcode 3504. Longest Palindrome After Substring Concatenation II
  • react+antd封装一个可回车自定义option的select并且与某些内容相互禁用
  • ffmpeg中格式转换需要注意点总结
  • 设计模式基础入门
  • Android 使用CameraX实现预览、拍照、录制视频(Java版)