linux中使用git获取所有分支,并获取所有分支中的logs然后输出保存为diff文件

c 复制代码
#!/bin/bash

# 创建目录用于存储每个分支的文件
mkdir branches

# 获取所有分支
branches=$(git branch -a)

# 遍历所有分支
for branch in $branches; do
  # 在每个分支上切换
  git checkout $branch
  
  # 使用git log --oneline将日志附加到all.log文件
  git log --oneline > all.log

  # 获取分支名
  branch_name=$(echo $branch | awk -F'/' '{print $NF}')

  # 创建分支文件夹
  mkdir "branches/$branch_name"

  # 遍历all.log文件的所有日志
  while read -r line; do
    # 解析每一行的id和name
    id=$(echo $line | awk '{print $1}')
    name=$(echo $line | awk '{print $2}')

    # 在分支文件夹下创建以name为文件名的.diff文件
    touch "branches/$branch_name/$name.diff"

    # 在.diff文件中写入相应的内容,这里只是一个示例
    echo "Changes for $name (ID: $id)" >> "branches/$branch_name/$name.diff"
    git diff $id >> "branches/$branch_name/$name.diff"
  done < all.log
done
相关推荐
雨大王5122 小时前
汽车生产智能计划助手如何提升排产效率并降低库存积压?
大数据·运维
嵌入小生0072 小时前
线程(2)/ 线程属性 /相关函数接口--- 嵌入式(Linux)
linux·嵌入式·线程·软件编程·僵尸线程·马年开工第一学·线程属性
以太浮标2 小时前
华为eNSP综合实验之- 3a认证配置案例及解析(AAA认证)
运维·tcp/ip·网络安全·华为·信息与通信
No8g攻城狮2 小时前
【Linux】Linux nano 编辑器全攻略:从入门到精通
linux·运维·编辑器·nano
zl_dfq3 小时前
Linux 之 【网络套接字编程】(固定宽度整数类型、socket常见API、netstat)
linux·网络
qq_426003963 小时前
git切换当前分支到远程分支
git
2301_805962934 小时前
arduino IDE如何设置代理
运维·服务器
shughui4 小时前
Docker Desktop下载、安装、配置、使用
运维·docker·容器·自动化
huaweichenai5 小时前
Linux安装http-server并部署html静态站点
linux·运维·服务器
Gss7775 小时前
Linux 正则表达式详解(基础 + 扩展 + 实操)
linux·运维·正则表达式