问题标签 [pygit2]

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.

0 投票
1 回答
258 浏览

git - 使用 PyGit2 暂存一个单独的块

我正在尝试git add -p在 pygit2 中实现,所以我可以为它制作一个替代前端。所以我首先需要能够上演个人帅哥。

我可以通过使用diff_to_workdir索引找到帅哥,如下所示:

但我不确定如何从那里开始。事实上,我的直觉告诉我,我根本不做任何事情,而是自己整理一个提交,然后把它交给 repo。

我有一种感觉,我最终需要能够从大块中创建一个 blob,然后使用 TreeBuilder 创建一个提交。但我就是无法到达那里!似乎我只能从文件创建 blob。谁能给一点指导?

0 投票
1 回答
1945 浏览

python - 使用 pygit2 拉取和集成远程更改

我确实有以下问题。我正在编写一个脚本,它在文件夹中搜索存储库,在网上查找遥控器并将所有新数据拉入存储库,通知我新的更改。主要思想很明确。我在 Windows 7 x64 上使用 python 2.7,使用 pygit2 访问 git 功能。命令行支持简单的命令“git pull 'origin'”,但是git api比较复杂,看不懂。好吧,我走了这么远: import pygit2 orepository=pygit2.Repository("path/to/repository/.git") oremote=repo.remotes[0] result=oremote.fetch() 此代码检索新对象并将其下载到存储库中,但不会更新主分支或检出新数据。通过使用 TortoiseGit 检查存储库,我发现没有任何方法已检出,甚至在显示日志时也不会出现新的日志消息。我需要使用 git pull 命令来刷新存储库和工作副本。现在我的问题是:我需要做什么才能通过使用 pygit2 来完成所有这些工作?我的意思是,我通过获取它们来下载更改,但是我需要做什么呢?我也想更新主分支和工作副本......提前感谢您帮助我解决我的问题。此致。

0 投票
2 回答
2601 浏览

python - 你如何用 pygit2 签出一个分支?

我想用来pygit2签出一个分支名称。

例如,如果我有两个分支:masterandnew并且HEAD是 at master,我希望能够做到:

甚至

但两者都不起作用,pygit2 文档也没有提到如何签出分支。

0 投票
1 回答
2607 浏览

git - 无法在 pygit2 中进行 ssh 推送

我正在尝试使用 ssh 推送到使用 pygit2 的 github 存储库。这是我不断收到的错误。
你能指出错误吗?

0 投票
1 回答
2373 浏览

git - 使用 pygit2 从远程拉取的步骤

在使用 pygit2 库时,一个简单的 repo.fetch() 会获取所有差异。这里的答案描述了步骤,即
1. Remote.fetch()
2.Repository.create_reference()Reference.target=
3。Repository.checkout_head()

我不确定第二步幕后发生了什么以及需要传递哪些参数。 r.repo.create_reference: (self, name, target, force=False)

创建一个指向一个对象或另一个
引用的新引用“名称”。

该方法根据目标参数的类型和值,尝试
猜测它是直接引用还是符号引用。

关键字参数:

force
如果 True 引用将被覆盖,否则(默认)引发
异常。

例子::

repo.create_reference('refs/heads/foo', repo.head.target)
repo.create_reference('refs/tags/foo', 'refs/heads/master')
repo.create_reference('refs/tags/foo', 'bbb78a9cec580')

第二步发生了什么,Reference.target= 它应该指向哪里是什么意思?而这一切又是如何使用Remote.fetch()动作的呢?

0 投票
1 回答
687 浏览

git - pygit2 中的 Repository.checkout() 和 Repository.checkout_head() 有什么区别?

当使用 pygit2从远程拉取和集成更改时,最后一步是使用Repository.checkout()or签出Repository.checkout_head()。使用哪个?

两者都以检查策略为论据。现在有几种检查策略,即 GIT_CHECKOUT_SAFE、GIT_CHECKOUT_SAFE_CREATE、GIT_CHECKOUT_FORCE
。我面临的问题是,即使在检查了索引文件之后,它也被修改了,即其中有几个文件是暂存的。

r.repo.status()
{'README.md': 2}

使用策略 GIT_CHECKOUT_FORCE 时,索引为空,并且提交也被存储。

什么时候不应该使用 GIT_CHECKOUT_FORCE 策略?
这是该过程的分步代码:
r.repo是Repository对象。remo是有名字的遥控器ssh-sansa

注意:这是使用 pygit2 拉取和集成更改的后续问题以及此处的另一个问题

0 投票
1 回答
164 浏览

libgit2 - libgit2 / pygit2 有没有办法进行更新服务器信息?

我需要准备一个用于从 HTTP 服务器访问的存储库。

看起来我需要在 repo 上运行 git update-server-info 来更新一些文件,使其可以通过一个愚蠢的 HTTP 服务器访问。

我正在使用 Pygit2 / Libgit2 创建存储库。libgit2 是否允许我执行 update-server-info 或者我需要以某种方式执行命令行 git 来执行此操作?

我已经进行了广泛的搜索,所以如果它可用,那么我在错误的地方寻找方法。

0 投票
3 回答
917 浏览

git - “(无分支)”和“(在 abc1234 分离)”之间的区别

通常,当您在 git 存储库中运行类似这样的内容时:

您最终处于分离的 HEAD 状态。如果运行git branch,输出将如下所示:

这是很好的预期行为。

我最近一直在玩 pygit2,并且遇到了一些我以前没见过的东西。假设我执行以下操作:

我希望存储库处于分离的 HEAD 状态。出于所有意图和目的,我相信这是在这样做之后。但是,输出git branch看起来有点不同:

有谁知道区别是什么,为什么会有区别,以及这意味着什么?

编辑:

下面是使用 pygit2 克隆存储库后的 reflog,将提交 SHA1 哈希分配给 repo.head,然后运行git checkout master,然后运行git checkout myhash

0 投票
4 回答
25500 浏览

python - 如何通过pygit2获取当前签出的Git分支名称?

这个问题应该与:

但我想知道如何通过pygit2做到这一点?

0 投票
1 回答
420 浏览

python - Pygit2 - 合并没有快进的分支

我实际上是在尝试做一个“git merge --no-ff branch”来合并我的分支。查看 Pygit2 文档,我不确定这样做的正确方法是什么。直接的想法是做这样的事情:

但是,我没有看到任何与 no-fastforward 合并的选项。有没有人广泛使用 pygit2 可以给我任何见解?非常感谢所有帮助。