问题标签 [gitpython]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 你如何定义 Fabric 推送到 GitHub 的主机?
原始问题
我有一些 python 脚本,它们一直在使用 Amazon S3 上传脚本中 Selenium 测试后拍摄的屏幕截图。
现在我们正在从 S3 转移到使用 GitHub,所以我找到了 GitPython,但看不到您如何使用它来实际提交到本地 repo 并推送到服务器。
我的脚本构建了一个类似于\images\228M\View_Use_Case\1.png
工作区中的目录结构,当上传到 S3 时,这是一个简单的过程;
是否有类似的东西,或者git add images
我完全错过了 GitPython 中的 bash 类型命令这样简单的东西?
用织物更新
因此,我根据 kracekumar 的建议安装了 Fabric,但找不到有关如何定义(GitHub)主机的文档。我的脚本非常简单,只需尝试上传即可;
它有效 \o/ 万岁。
gitpython - 检查对象是否在 gitpython 的仓库中
我正在开发一个将在 git repo 中添加和更新文件的程序。由于我无法确定我正在使用的文件当前是否在 repo 中,我需要检查它的存在 - 这个操作似乎比我想象的要难。
'in' 比较似乎不适用于 gitpython 中树的非根级别。前任。
所以我想知道,人们如何在尝试处理给定文件之前检查给定文件是否在 git 树中?尝试访问不在树中的文件的对象将引发 KeyError,因此我可以尝试捕获。但这感觉像是在例行存在检查中使用异常处理很糟糕。
我错过了一些非常明显的事情吗?如何使用 gitpython(或 Python 中的任何库/方法)检查提交树中是否存在文件?
自我回答
好的,我在Tree 类中四处挖掘,看看 __contains__ 做了什么。事实证明,在子文件夹中搜索时,必须使用来自 repo 根目录的完整相对路径来检查文件是否存在。所以我上面所做的检查的工作版本是:
git - GitPython通过sha获取树和blob对象
我正在使用带有裸存储库的 GitPython,并且试图通过其 SHA 获取特定的 git 对象。如果我直接使用 git,我会这样做
由于我使用的是 GitPython,并且我想获得一棵特定的树,因此我执行以下操作:
把这个拿回来
现在我有一个树对象,但我无法访问它的属性,如路径、名称、blob 等。
但是如果我输入以下内容,它会起作用
我的问题的另一部分是如何使用 GitPython 获取 blob 对象。我注意到唯一的对象树有属性 blob,所以为了通过 SHA 获取 blob,我必须 (a) 首先知道它属于哪个树,(b) 找到这个 blob,然后 (c) 调用data_stream
方法。我可以做
但我想首先知道这是做到这一点的唯一方法。
python - OSError: [Errno 2] GitPython 上没有这样的文件或目录
我正在使用 GitPython 将远程存储库获取到我的机器。以下代码在我的 Ubuntu 12.04 上运行良好,但在我的 amazon ec2 上,在 Ubuntu 11.10 服务器上,我收到 OSError: [Errno 2] No such file or directory 错误。
当我在脚本中运行该块时,我没有收到任何错误消息。但是当我在交互式 shell 上尝试这些步骤时,我得到了这个堆栈跟踪:
但是我的本地机器上没有这样的问题。不知道出了什么问题。任何帮助将不胜感激!
python - 使用 GitPython 模块获取远程 HEAD 分支
我正在尝试使用 GitPython 编写一些 Python 脚本,当我管理许多分支时,我可以使用它来简化我的日常任务。
在编写复杂的脚本时,我对 Python 也很陌生。
这是我使用的 API:GitPython API doc
我想用 GitPython 编写它,它只执行以下操作并解析出显示 HEAD 远程分支指向的部分。换句话说,我想基本上得到remotes/origin/HEAD
我多次浏览 API 文档,起初我无法理解这些 API 文档的 Python 格式,除了remote_head
在class git.refs.reference.Reference(repo, path, check_path=True)
但我什至不知道如何调用/初始化它。
这是我到目前为止所做的,你可以告诉我我正在尝试做什么,只需重置为“无分支”状态并删除我所在的当前分支:
任何帮助深表感谢!
谢谢。
python - 无法遵循 python git 教程
我最近安装了 python-git 包,当尝试按照以下链接的教程进行操作时,我发现某些方法丢失了......
http://packages.python.org/GitPython/0.3.2/tutorial.html#tutorial-label
这是我的解释器的结果:
python - 如何使用 gitpython 自动推送到 repo
我正在尝试制作一个 python 脚本来检查我的 git 本地工作文件夹中的更改,并自动将它们推送到在线仓库。目前只能手动使用 git 来完成。我想知道,在没有人工干预的情况下,脚本需要什么才能做到这一点。
我在 shell 中输入的命令是:
执行 git push 时,您总是需要输入用户名/密码。我知道 git 有办法解决这个问题,包括制作 ssh 密钥等等。但我假设 GitPython 有某种方式可以做到这一点。我的意思是我们可以通过代码传递用户名/密码,或者使用前者。那么当我使用 GitPython 时,我有哪些关于身份验证的选项?
编辑:有些应用程序实际上会生成 ssh 密钥,例如 github 的 windows 应用程序。windows应用程序是如何做到这一点的?我的假设是肯定有一些 git api 用于它......
python - 如何使用 gitPython 执行 git reset --hard?
好吧,标题是不言自明的。与使用GitPython模块运行git reset --hard
(在终端上)等效的 python 代码是什么?
git - GitPython 从远程分支创建本地分支
我有多台实验室机器,我需要在本地实验室机器上复制我的远程分支。我相信为此的 git bash 命令是:
git checkout -b mybranch origin/mybranch
我如何在 GitPython 中做同样的事情?
我可能会进行更改并将更改推送回 origin/mybranch,然后将更改拉回其他实验室机器。
python - GitPython 相当于“git remote show origin”?
我正在尝试更新一个 Python 脚本,该脚本检查少数本地存储库的状态,从使用subprocess到使用GitPython。GitPython for中的等效命令是git remote show origin
什么,或者检查本地存储库是否可快速转发或过时(等)的更好方法是什么?
最后两行是我最关心的。通过迭代和比较(等)哈希值,看起来这可能通过GitPython实现。这似乎比上面的单个本地 git 命令要做更多的工作,并且需要更多的工作来判断哪一侧已经过时。我期待类似的东西。在GitPython中确定这一点的正确方法是什么?git.Repo.heads
git.Repo.remotes.origin.refs
.master.commit
git.Repo.remotes.origin.status()