You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中检查指定Git提交是否已推送并执行推送?

在PowerShell中检查指定Git提交是否已推送并自动推送的实现方法

以下是实现需求的具体PowerShell脚本及说明:

核心逻辑

  1. 获取当前本地分支相对于远程分支的最新未推送提交信息
  2. 判断该提交的信息是否为Test 123
  3. 若满足条件,则执行git push命令

完整脚本

# 获取当前分支名称
$currentBranch = git rev-parse --abbrev-ref HEAD

# 获取本地最新的未推送提交信息(仅取提交标题)
$latestUnpushedMsg = git log --oneline "origin/$currentBranch..HEAD" -1 --pretty=format:"%s"

# 验证条件并执行推送
if (-not [string]::IsNullOrEmpty($latestUnpushedMsg) -and $latestUnpushedMsg -eq "Test 123") {
    git push
    Write-Host "已成功推送提交:Test 123"
} else {
    Write-Host "无匹配的未推送提交,无需执行推送操作"
}

脚本说明

  • git rev-parse --abbrev-ref HEAD:自动获取当前所在分支名称,避免硬编码分支名,提升脚本通用性
  • git log --oneline "origin/$currentBranch..HEAD" -1 --pretty=format:"%s":
    • origin/$currentBranch..HEAD:筛选出本地分支比远程对应分支多的所有提交(即未推送的提交)
    • -1:仅保留最新的一条未推送提交
    • --pretty=format:"%s":只输出提交的标题信息(忽略哈希值等其他内容)
  • 条件判断:先确认存在未推送提交($latestUnpushedMsg非空),再验证提交信息是否完全匹配Test 123,满足则执行推送

注意事项

  • 确保当前PowerShell工作目录是Git仓库的根目录或子目录
  • 若你的远程仓库别名不是origin,需将脚本中的origin替换为实际的远程别名
  • 执行脚本前请确保本地Git已配置好远程仓库的推送权限

内容的提问来源于stack exchange,提问作者Sergio Ramos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:32:08