Git使用經驗總結7-自動檢測未提交內容并進行提交
標題有點繞,其實是這個意思:遠端像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倉庫確實不太適合管理二進制數據,這樣傻的時候以后還是不要做了,就算上傳成功了以后下載下來也是個麻煩事情。

浙公網安備 33010602011771號