当前位置: 首页 > 知识库问答 >
问题:

git运行命令,如果没有提交

袁志专
2023-03-14

这个问题可能是关于bash的,也可能是关于git的。

如果没有什么要提交的,我该如何运行命令?我做了以下操作,但它运行了回声你好命令,即使没有什么要提交的:

if git diff --exit-code; then
  echo hello
fi

来自python背景,我认为如果git 命令为空,则if语句中的内容将不会执行。我已经确认,git diff--exit code不返回任何内容。


共有2个答案

邵崇凛
2023-03-14

试试这样:

git diff --exit-code # exit code will be "0" if no changes
if [ $? -gt 0 ]; then
  echo hello
fi
桂志诚
2023-03-14

TLDR:您当前的代码在成功的情况下呼应Hello,而不是失败的情况。

我们可以通过反转条件来解决这个问题,所以它变成:

if ! git diff --exit-code; then
  echo hello
fi

我建议大家看看如何使用“if”语句检查退出状态,该语句提供了一些选项。

 类似资料:
  • 我做了一个狙击命令,但唯一的问题是它没有正确地提到用户。我一直想解决这个问题。我还附上了鸟的照片。回溯错误: 忽略命令snipe:Traceback(最后一次调用)中的异常:文件“/opt/virtualenvs/python3/lib/python3.8/site packages/discord/ext/commands/core.py”,第85行,在wrapped ret=await cor

  • 无法从Git bash运行以下命令。我在错误以下; Git版本:Git版本2.28.0.Windows.1操作系统:Windows10

  • 基本上,我在gitbash命令行中键入,然后返回一个空行,好像命令行正在思考。。。 我做了大量的研究,但似乎无法通过在命令行中键入python在GitBash上运行python。 我看到的问题是:Python在git bash的命令行中不起作用,有人建议键入: 进入命令行,它工作了!但是,我不想一直在命令行中输入整个命令。

  • 我只需要"解除屏蔽"我的终端后...有一些选项或setpup为它? 注意:我的服务正在使用,因此假设不需要在命令行上使用。 PS:我需要保持容器运行,我不需要使用

  • 我已经在Windows7机器上安装了msysGit 1.7.10。我需要知道的是我是否还可以从命令行使用Git? 当我现在在命令行中尝试命令时,我看到: “git”不能识别为内部或外部命令、可操作程序或批处理文件。 有什么方法可以启用Git命令行吗?

  • 有人能发布详细的分步说明如何安装Saxon(10 HE)以及如何从MacOS(10.13.6)中的命令行运行转换吗? 我已经在我的计算机上安装了Java 我已经下载了SaxonHE10-6J。来自SourceForge的zip文件 根据这里的建议,我放置了saxon-he-10.6。jar位于myUserName/Library/Java/Extensions文件夹中 然后,我打开终端应用程序并根