【问题标题】:Git command doesn't work in subprocess in PythonGit命令在Python的子进程中不起作用
【发布时间】:2015-05-19 14:15:40
【问题描述】:

在我的团队中,我们使用 python 来自动化一些 git 工作已经有一段时间了,而且一切正常。不幸的是,我遇到了一些我想使用的东西,但在放入 python 子进程时不起作用。这是命令:

git describe --tags `git rev-list --tags --max-count=1`

当我在我的 git bash(我们使用的是 Windows)中使用它时,它工作正常,但是当我将它放在 python 子进程中时,它抱怨 git rev-list --tags --max-count=1 不是一个有效的命令。我想知道是否有人能告诉我为什么,最好是一种使用它的方式。我从这个问题中得到了答案:

How to get the latest tag name in current branch in Git?

我正在尝试在最接近当前 HEAD 的分支上获取 LATEST 标记。我现在有一个 hacky 解决方法,它列出了所有标签,然后按数字对它们进行排序,但这只是因为我们没有发布任何非数字标签,这不一定总是如此。

谁能帮帮我?

【问题讨论】:

    标签: git python-2.7


    【解决方案1】:

    Popen 构造函数默认不使用 shell 来解析你给它的命令。这意味着诸如反引号之类的 shell 元字符将不起作用。您可以传递shell = True 或先运行git rev-list --tags --max-count=1,然后再创建整个命令。

    【讨论】:

      猜你喜欢
      • 2019-04-17
      • 2016-09-13
      • 2021-04-28
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多