【问题标题】:how to confirm that current git diff is one with current and last and not with current commit and any other如何确认当前 git diff 是当前和最后一个而不是当前提交和任何其他
【发布时间】:2014-01-26 05:00:03
【问题描述】:

我正在 python 中制作一个工具来推送,显然我想推送最后一次提交,所以如果我正在检查我想要推送的最后一个提交的差异,但如果差异不是当前和最后一个 HEAD,那么@ 987654321@ 应该不起作用。

如何检查git diff是否在当前头和最后一个头之间,即git diff HEAD^ HEAD而不是其他任何人?

为什么我需要功能?

因为我看到的差异是我要通过电子邮件发送的差异。但是,这是否有意义,我会看到不同的差异并推送最后一次提交。

这就是为什么我试图弄清楚显示的差异是否是当前和最后一次提交,然后我应该推送否则不。

【问题讨论】:

  • 我很难理解您的问题。你能改写吗?此外,为什么您需要此功能的描述也会很有用。
  • @bluefeet:我已经添加了描述,你现在明白了吗?
  • 我仍然很难理解你在问什么。似乎您在质疑git diff HEAD^ HEAD 的基本能力,即为您提供HEAD 与先前提交 (HEAD^) 的差异,这正是它的作用,我不知道您为什么这么认为那样不行。
  • 让我从不同的角度来处理我的问题 - 您想在提交被推送到上游存储库时发送电子邮件,是吗?因此,您希望确保您的电子邮件的git diff 仅包含此次推送中 的那些更改,对吧?这就是您要解决的问题吗?
  • 我想通了。使用git diff HEAD^ HEAD 是我想看到的差异,这是从上次提交和通过电子邮件推送的。

标签: python git git-diff


【解决方案1】:

我感觉一个简单的git statusgit diff --cached 足以确保最后一次提交确实是最后一次提交,这意味着没有正在进行的工作,其中一些已经添加到索引中,这可能构成一个新的提交。

如果git status 没有提到任何添加到索引的文件,那么您可以推送您的最后一次提交。

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多