如何编写Bash/Shell脚本实现Git切分支并cherrypick指定提交
对应需求的Shell脚本实现
注意你提到的git cherrypick命令存在拼写错误,Git原生拣选提交的命令是git cherry-pick,脚本中会使用正确命令,同时增加基础容错避免执行异常。
完整脚本代码
#!/bin/bash # 开启容错:任意命令执行失败、引用未定义变量、管道命令出错时直接终止脚本 set -euo pipefail # 第一步:获取当前分支名存入INPUT变量 INPUT=$(git branch --show-current) # 校验分支名有效性,分离头指针状态下获取到的值为空,直接终止 if [ -z "$INPUT" ]; then echo "执行失败:当前处于分离头指针状态,未检测到有效分支名" exit 1 fi # 第二步:切换到master分支 git checkout master # 第三步:将原分支的提交拣选到当前master分支 git cherry-pick "$INPUT"
使用步骤
- 把上面的代码保存为任意名称的shell文件,比如
pick-to-master.sh - 执行
chmod +x pick-to-master.sh给脚本添加可执行权限 - 进入目标Git仓库目录,运行
./pick-to-master.sh即可完成操作
补充说明:如果你要拣选的不是原分支的最新顶点提交,只需要修改
INPUT的赋值逻辑,传入对应commit哈希即可;如果你的本地主分支名是main而不是master,把脚本里的master替换成main就行。
内容的提问来源于stack exchange,提问作者Manikanta reddy
相关产品推荐
相关产品推荐

