在使用 Git 开发时,经常需要将远程所有分支一次性拉取到本地,避免手动逐个创建。下面分别给出 Git Bash 和 Windows CMD 下的一键批量拉取脚本。
一、Git Bash 脚本(适用于 Git Bash / Linux /macOS)
bash
运行
git fetch origin
for branch in $(git branch -a | grep "origin/" | grep -v HEAD | sed -e 's/^.*origin\///' -e 's/^[ \t]*//'); do
git checkout -b $branch origin/$branch 2>/dev/null || git checkout $branch
done
脚本说明
- 先执行
git fetch origin同步远程所有分支信息 - 过滤出远程分支,剔除
HEAD指针 - 循环创建本地分支并关联远程分支
- 若分支已存在,则直接切换,不报错
二、Windows CMD 脚本(适用于 CMD 批处理)
cmd
git fetch origin
for /f "tokens=* delims=" %%a in ('git branch -a ^| findstr /c:"origin/" ^| findstr /v "HEAD"') do (
set "branch=%%a"
setlocal enabledelayedexpansion
set "branch=!branch:*origin/=!"
git checkout -b !branch! origin/!branch! 2>nul || git checkout !branch!
endlocal
)
脚本说明
- 适用于 Windows 原生命令行,无需 Git Bash
- 实现逻辑与 Bash 版本一致
- 批量拉取远程所有有效分支到本地
- 自动忽略已存在的分支,不中断执行