admin管理员组文章数量:1631137
一. 场景说明
公司有很多项目,我把它们都放在本地同一个磁盘目录下,使用bat脚本,批量git pull拉取每一个项目的最新代码。
二. git_pull.bat脚本
@echo off
start cmd /K
for /D %%i in (F:\zzxypm\Cloud\dmp,F:\zzxypm\Cloud\pass,F:\zzxypm\Cloud\server,F:\zzxypm\Cloud\web,F:\zzxypm\Credit\react,F:\zzxypm\Credit\server,F:\zzxypm\Credit\server-web,F:\zzxypm\csci\csci,F:\zzxypm\lbmp\csci-activiti,F:\zzxypm\lbmp\react,F:\zzxypm\lbmp\server,F:\zzxypm\lbmp\vue,F:\zzxypm\maven-lib\maven-lib,F:\zzxypm\MSME\amalgam7,F:\zzxypm\MSME\inox,F:\zzxypm\MSME\invar,F:\zzxypm\MSME\tial,F:\zzxypm\Sign\console_server,F:\zzxypm\Sign\console_web,F:\zzxypm\Sign\sign_server,F:\zzxypm\Sign\sign_wx,F:\zzxypm\zzxypm,F:\zzxypm\zzxypm\db\zzxypm-db
) do cd %%i & git pull
cd F:\zzxypm
ECHO %date% %time% >>update.txt
pause
我这边for循环是直接定位到每一个项目的 .git所在目录中。
可以通过下面的代码获取所有 .git 所在目录全路径。
/**
* 递归查找含有 .git 的目录
*/
@Test
public void recursionDiskDirectory(){
List<File> fileList = new ArrayList<>();
fileList = getAllFilePaths(new File("F:\\zzxypm"),fileList);
StringBuilder sb = new StringBuilder();
for(File f:fileList){
if (".git".equals(f.getName())){
sb.append(f.getParent()).append(",");
}
}
sb.deleteCharAt(sb.length()-1);
System.out.println(sb);
}
private static List<File> getAllFilePaths(File filePath, List<File> fileList){
File[] files = filePath.listFiles();
if(files == null){
return fileList;
}
for(File f:files){
if(f.isDirectory()){
fileList.add(f);
getAllFilePaths(f,fileList);
}
}
return fileList;
}
参考链接:
https://www.jianshu/p/397e62ef21fb
https://my.oschina/mdongfeng/blog/209430
版权声明:本文标题:windows下bat脚本git pull批处理 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729088107a1185835.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论