简要介绍了通过脚本检测未提交内容并分批次进行多次提交。

标题有点绕,其实是这个意思:远端像Github这样的仓库由于网速的问题,你是没办法进行大数据量的提交的,因为很有可能会因为连接超时而导致提交中断。对于这种情况就需要使用脚本,检查未提交内容,分批次进行多次提交。例如笔者使用的PowerShell脚本如下:

# 获取当前未提交的 .tif 文件列表
$files = git status --porcelain | Where-Object { $_ -match '\.tif$' } | ForEach-Object { $_.Substring(3).Trim() }

# 判断是否有未提交的文件
if ($files.Count -eq 0) {
    Write-Host "No Need Commit Files!"
    exit
}

# 遍历每个文件,进行提交和推送
foreach ($file in $files) {
    Write-Host "Commit File: $file"
    
    # 添加文件到暂存区
    git add $file
    
    # 提交文件
    git commit -m "Commit File $file"
    
    # 推送到远程仓库
    git push origin main # 请根据你的远程分支名称进行修改
}

Write-Host "All File Commit And Push!"

这里脚本的意思是找到未提交的后缀为.tif数据文件,将这些文件一个一个进行提交。提交的脚本很简单,就是调用git指令。关键在于要获取git status --porcelain返回的文件内容,并对其进行选取,并用了正则表达式进行匹配。读者可以根据自己的条件进行改写,如果不会写就问一问AI吧。

笔者使用这个脚本将70G的SRTM数据提交到Github代码仓库中去了,有兴趣的读者可以看看:地址。提交完成后整个仓库的体积超过了140G😓,看来Git仓库确实不太适合管理二进制数据,这样傻的时候以后还是不要做了,就算上传成功了以后下载下来也是个麻烦事情。