【问题标题】:git diff between local branch and remote tracking branch本地分支和远程跟踪分支之间的 git diff
【发布时间】:2019-02-16 17:14:22
【问题描述】:

如果本地分支和远程跟踪分支之间存在差异,我只想获得一个非零退出代码。

例如,假设本地分支是 foo,我已经检查了它,所以 diff 命令将是:

git fetch origin
git diff --exit-code remotes/origin/foo

但是,我的问题是 - 是否有一种通用/编程方式可以为任何本地分支运行这种 diff 命令?通常,我想将本地分支与远程跟踪分支进行比较。

【问题讨论】:

  • 是的,您可以编写一个脚本,使用本地分支名称(例如foo)作为参数,然后使用上面编写的其余部分作为模板。
  • 假设远程跟踪分支的名称为 foo,等等。有没有办法以编程方式获取远程跟踪分支的名称?
  • 知道了...我有一半希望你会问这个问题。 See here.
  • 仍然没有看到一个好的通用/编程方式来做到这一点。
  • 您最近似乎在问一些关于在 Git 中实现自动化的问题,我只是手动输入。请问您是否在做一些 devops 基础设施工作?

标签: git git-diff


【解决方案1】:

要可靠地以编程方式获取当前分支的上游,您可以使用:

HEAD@{upstream}

所以在这种情况下,它会是:

git diff HEAD HEAD@{upstream}

据我所知,这可能是您运行时的默认设置:

git diff

没有参数了;不过我更喜欢明确。

【讨论】:

    猜你喜欢
    • 2013-04-30
    • 2010-09-27
    • 2014-06-09
    • 2014-02-04
    • 2016-02-22
    • 2012-03-05
    • 2010-10-05
    • 1970-01-01
    相关资源
    最近更新 更多