我怎样才能从共享父目录更新多个git存储库,而无需cd到每个回购的Windows 7的根目录?
我有以下这些都是单独的git仓库(不是子模块):
c:\projects\repos\repo1 c:\projects\repos\repo2 c:\projects\repos\repo3
在Linux上,我可以使用这个bash脚本
find ~/projects/repos/ -type d -name .git \ | xargs -n 1 dirname \ | sort \ | while read line; do echo $line && cd $line && git pull origin $1 && echo ; done
Windows批处理解决方案:
如果你想在.bat脚本中使用这个:
for /D %%G in ("*") do (echo %%G) && (cd %%G) && (git pull origin) && (cd ..)
如果它只是在控制台中:
for /D %G in ("*") do (echo %G) && (cd %G) && (git pull origin) && (cd ..)
您可以使用PowerShell脚本:
$dirs = Get-ChildItem -Path . | ?{ $_.PSIsContainer } $back = pwd foreach ($dir in $dirs) { cd $dir.FullName echo $dir.FullName git pull origin } cd $back.Path
一个更清洁和更好的方式来做到这一点,是一个正常的控制台命令:
FOR /D %a IN (c:\projects\repos\*) do git -C %~fa pull
或者在.bat文件中
FOR /D %%a IN (c:\projects\repos\*) do git -C %%~fa pull PAUSE
甚至是项目目录中的.bat文件
FOR /D %%a IN (.\repos\*) do git -C %%~fa pull PAUSE