操作步骤 合并commit cd xxx/ git checkout a8c0efegfwgtw # 最新commit git reset rhgertheryhg --soft # 最初的commit git status git checkout -b test1 git commit -m "test1" git branch git push origin test1 git tag test1_v0.0.1 git push origin test1_v0.0.1 如何仅保留指定分支信息并打包 写了一个脚本, #! /bin/bash set -x branchs=$1 branch_list_del=$(git branch -a | grep -v 'refs/remotes/origin/HEAD') arr=("$(echo "${branchs}" | sed 's/,/ /g')") for item in ${arr[@]}; do branch_list_del=$(echo $branch_list_del| xargs -n 1 | grep -v remotes/origin/$item) done for i in $(echo $branch_list_del| xargs -n 1); do if echo $i | grep remotes/origin; then del_branch_name=$(echo $i | sed 's#remotes/##g') git branch -d -r $del_branch_name fi done 执行步骤: cd xxx && bash delete_branch.sh 'test1,test2' # 其中test1,test2为要保留的分支名listgit checkout test1cd ../ && tar czf xxx-24.05.15.tar.gz xxx