ideasvn查看自己的提交记录_紧急发布用cherry-pick检出当前分支所有我的提交记录...

当需要从主分支提取特定开发者的所有提交时,可以使用Git的cherry-pick命令。本文介绍了如何通过shell脚本自动化这一过程,结合git log查询个人提交日志,以应对紧急发布需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSDN (https://blog.csdn.net/HalfImmortal/article/details/106911344)

背景

公司接了个新项目,需在平台上增加几个新接口,问题是本来说是和平台一起迭代发布的时间提前了,但当前的代码都和其他开发人员一起提交到了develop中,现在要提前发布只能从master拉出一个分支来把我的提交都添加上去然后测试发布。

操作命令

cherry-pick

当时想到的第一个命令就是这个,检出我的所有提交,然后应用到另一个分支中去。平时使用这个命令只是简单的pick一个提交,现在需要编写个shell脚本,自动化我们某段时间内的操作全都pick到新分支上去。

git log

这里面我们还用到一个很重要的命令git log用来查询我的所有提交日志,最后输入想要的commit IDgit cherry-pick使用,下面是git log常用的格式占位符写法及其代表的意义:

01c9fe93f6337ac24a1e89f1feb421d7.png

Shell脚本

由于公司代码不好贴出来,所以只能介绍操作方法了。
  • 开发分支:develop
  • 线上分支:master
  • 紧急发布分支:hotfix/urgent-publish(不要太关注这个名字,哈哈,和平台的打包策略有关)
  • 我提交的commit author名称:Charles

我们现在定义操作的步骤:

# 1、拉取最新的master代码,查看提交记录
gco master;git pull;git log --author="Charles" --reverse --pretty=format:"%H %ad %s" | cat

# 2、创建紧急发布分支
git checkout -b hotfix/urgent-publish;git push --set-upstream origin hotfix/urgent-publish

# 3、拉取最新的develop的代码,查看提交记录
gco develop;git pull;git log --author="Charles" --reverse --pretty=format:"%H %ad %s" | cat

# 4、grep所有我之前的提交记录,然后把commit打印出来,并输出到一行,赋值给变量commits
commits=($(git log --author="Charles" --since=2020-05-10 --reverse --pretty=format:"%H %s" | grep -v "Merge branch" | awk '{print $1}' | tr -s "n" " "))

# 5、对每个commit循环应用cherry-pick,最后提交到发布分支中去
for commit in $commits;do git cherry-pick $commit;done git push origin hotfix/urgent-publish
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值