# 从命令行参数获取分支名和正则表达式 dev_branch=$(git branch --show-current) test_branch=$1 grep_pattern=$2 # 使用git diff命令查找test分支相对于dev分支修改的文件名,然后使用grep过滤文件名 files=$(git diff --name-only ${dev_branch}..${test_branch} | egrep "${grep_pattern}") echo "找到文件:"${files} read -p "请输入 y 继续执行脚本:" input if [ ! "${input}" = "y" ]; then echo "退出脚本" exit 1 fi # 使用for循环遍历文件名列表 for file in $files; do # 判断文件是否存在 if [ ! -f ${file} ]; then mkdir -p "$(dirname "${file}")" touch ${file} git add ${file} fi echo "git checkout ${test_branch} ${file}" git checkout ${test_branch} -- "${file}" done git status