gpt4 book ai didi

python - GitPython 并向 Git 对象发送命令

转载 作者:太空狗 更新时间:2023-10-30 01:52:35 25 4
gpt4 key购买 nike

GitPython是一种从 python 与 git 交互的方式。我正在尝试从此模块访问基本的 git 命令(例如 git commit -m "message"),根据 this应该通过 Git 模块访问。到目前为止,这是我为使这些命令正常工作所做的尝试:

>>> import git
>>> foo = git.Git("~/git/GitPython")
>>> bar = "git commit -m 'message'"
>>> beef = git.Git.execute(foo,bar)

这会显示一个错误,指出没有这样的文件或目录。我还尝试将以下内容作为我的 git 目录的路径:

~/git/GitPython/.git
/Users/bacon/git/gitclient/

唯一的另一个选择是命令错误,所以我尝试了:commit -m "message",仍然得到“no such file or directory”。

我需要做什么才能使这些 git 命令正常工作?

最佳答案

我还没有尝试验证它,但似乎 git.Git.execute 需要一个命令行参数列表(如果你给它一个字符串,它会寻找一个与字符串、空格和所有内容完全匹配的可执行文件——这自然不会被发现),所以我认为这样的事情会起作用:

import git
import os, os.path
g = git.Git(os.path.expanduser("~/git/GitPython"))
result = g.execute(["git", "commit", "-m", "'message'"])

其他变化:

  • 我预计使用带有 ~ 的路径是行不通的,所以我使用 os.path.expanduser 将 ~ 扩展到您的主目录
  • 通常首选使用 instance.method(*args) 而不是 Class.method(instance, *args) 所以我改变了它,尽管它仍然可以用其他方式工作

虽然可能有比手动运行 commit 命令更明智的方法(我只是没有注意到任何快速浏览源代码)所以我建议在这样做之前确保没有更高级别的方法

关于python - GitPython 并向 Git 对象发送命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/873740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com