Files
wecom-ai-assistant/scripts/push-to-private-repo.ps1
2026-02-05 20:09:07 +08:00

96 lines
3.1 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 推送代码到私有 Git 仓库
# 用途:将代码推送到私有仓库(默认推送到私有仓库)
param(
[string]$CommitMessage = "Update: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')",
[switch]$PushToGitHub,
[switch]$PushToBoth
)
Write-Host "=== 推送代码到 Git 仓库 ===" -ForegroundColor Cyan
Write-Host ""
# 检查 Git 状态
$status = git status --porcelain 2>$null
if ($status) {
Write-Host "发现更改的文件:" -ForegroundColor Cyan
git status --short
Write-Host ""
# 添加所有更改
Write-Host "添加所有更改..." -ForegroundColor Yellow
git add .
Write-Host "✓ 文件已添加到暂存区" -ForegroundColor Green
# 提交
Write-Host "提交更改..." -ForegroundColor Yellow
Write-Host "提交信息: $CommitMessage" -ForegroundColor Gray
git commit -m $CommitMessage
Write-Host "✓ 更改已提交" -ForegroundColor Green
} else {
Write-Host "✓ 没有需要提交的更改" -ForegroundColor Green
}
# 检查远程仓库
$privateRemote = git remote get-url private 2>$null
$originRemote = git remote get-url origin 2>$null
if (-not $privateRemote -and -not $originRemote) {
Write-Host "错误: 未配置远程仓库" -ForegroundColor Red
exit 1
}
# 确定推送目标
if ($PushToBoth) {
$pushToPrivate = $true
$pushToOrigin = $true
} elseif ($PushToGitHub) {
$pushToPrivate = $false
$pushToOrigin = $true
} else {
# 默认推送到私有仓库
$pushToPrivate = $true
$pushToOrigin = $false
}
# 推送到私有仓库
if ($pushToPrivate -and $privateRemote) {
Write-Host ""
Write-Host "推送到私有仓库..." -ForegroundColor Yellow
Write-Host "远程仓库: $($privateRemote -replace '://.*@', '://****@')" -ForegroundColor Gray
Write-Host "分支: main" -ForegroundColor Gray
Write-Host ""
git push private main
if ($LASTEXITCODE -eq 0) {
Write-Host "✓ 代码已成功推送到私有仓库" -ForegroundColor Green
} else {
Write-Host "✗ 推送到私有仓库失败" -ForegroundColor Red
}
}
# 推送到 GitHub如果指定
if ($pushToOrigin -and $originRemote) {
Write-Host ""
Write-Host "推送到 GitHub..." -ForegroundColor Yellow
Write-Host "远程仓库: $($originRemote -replace '://.*@', '://****@')" -ForegroundColor Gray
Write-Host "分支: main" -ForegroundColor Gray
Write-Host ""
git push origin main
if ($LASTEXITCODE -eq 0) {
Write-Host "✓ 代码已成功推送到 GitHub" -ForegroundColor Green
} else {
Write-Host "✗ 推送到 GitHub 失败" -ForegroundColor Red
}
}
Write-Host ""
Write-Host "=== 完成 ===" -ForegroundColor Green
Write-Host ""
Write-Host "使用说明:" -ForegroundColor Cyan
Write-Host " - 默认推送到私有仓库: .\scripts\push-to-private-repo.ps1" -ForegroundColor Gray
Write-Host " - 推送到 GitHub: .\scripts\push-to-private-repo.ps1 -PushToGitHub" -ForegroundColor Gray
Write-Host " - 推送到两个仓库: .\scripts\push-to-private-repo.ps1 -PushToBoth" -ForegroundColor Gray
Write-Host ""