问题标签 [go-git]

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 投票
2 回答
5479 浏览

git - go-git:如何在远程服务器上进行身份验证?

我正在使用 go 项目go-git作为 git-client 并希望从通过gitea托管的私有 git-repository 获取。

执行此操作的适当函数是func (r *Remote) Fetch(o *FetchOptions) error,它需要一个transport.AuthMethod对象进行身份验证。

我尝试了以下方法:

...它只是返回:

验证方法无效

如果我使用也会发生同样的情况

从包"gopkg.in/src-d/go-git.v4/plumbing/transport/ssh"

如果我使用证书:

如何确定支持哪种身份验证方法,是否有transport.AuthMethod可以使用的现有实现?

0 投票
2 回答
802 浏览

git - 如何以编程方式找到两个分支的共同祖先

我正在做一个项目,我将我的项目与git. 出于集成目的,我正在使用go-git库。我的问题是如何以编程方式找到两个分支的共同祖先?我想实现这个功能。看起来go-git和其他 go 库不提供这样的功能。

0 投票
1 回答
1187 浏览

go - 如何轮询 GitHub 存储库以进行更改

我需要将此功能添加到我的 GO 程序中,目的是轮询 repo 并对更改执行 git pull。我一直在使用https://github.com/src-d/go-git但找不到投票的方法。

我不想使用 webhook 来避免为传入的有效负载创建服务器。

0 投票
1 回答
2450 浏览

git - 是否有可能与 go-git 等效 git diff

我每 10 秒拉一次 repo,需要检查每次拉取后哪些文件发生了变化。

用 go-git 可以做到这一点吗?

0 投票
2 回答
2878 浏览

git - 使用 go-git 从 GitHub Enterprise 克隆存储库

我正在尝试使用go-git从 GitHub Enterprise 克隆存储库。为此,我使用带有访问令牌的 HTTPS 协议,该访问令牌对我的存储库具有适当的权限(在命令行上验证)。go-git进行 RPC 调用时失败,git-upload-pack因为服务器以 400 响应:

它发出的请求等价于:

如果没有请求标头中的令牌,我会从存储库中获得预期的 401 ( Anonymous access denied) 响应。使用令牌,它会以 400 响应。

我发现非企业 GitHub 上的公共存储库也是如此;不同之处在于它(预期)在没有Authorization标题的情况下工作,因为没有必要。如果我包含一个有效的令牌,GitHub 就像它的企业版一样以 400 响应。

下面是一个最小的例子。有没有一种方法可以go-git与需要身份验证的 GitHub Enterprise 一起使用?理想情况下使用身份验证令牌?

0 投票
1 回答
646 浏览

git - 从函数返回时,内存中的存储库消失

go-git在一个程序中使用并尝试测试我的功能。为了测试一个函数,我想首先创建一个内存存储库,向它提交一个文件,然后让我的函数使用它。

因此,在我的测试中,我编写了一个助手,它可以在内存文件系统中创建一个新的内存仓库(init)并返回它。

但是当我尝试在调用函数中使用 repo 时,我什么也没得到。

这是重现问题的示例:

并执行它给出:

因此,该main函数不能列出来自 repo 的任何提交,也不能克隆它。

我究竟做错了什么?

0 投票
1 回答
340 浏览

go - 在 go-git 中删除本地分支:找不到分支

我正在尝试使用 go-git 删除本地分支,但branch not found运行时出现错误

或者

仅使用分支名称 ( template/test) 也不起作用。该分支包含在分支列表中。这个

提供以下输出:

我怎样才能删除它?

更新:我检查了函数 DeleteBranch,它看起来像这样:

}

然后我创建cfg := repo.Storer.Config()并检查了cfg.Branches包含的内容。令人惊讶的是,这张地图只有以下元素:&{global origin refs/heads/global 0xc0007fbf80}. 因此无法删除其他分支,因为在此配置中找不到它们。

0 投票
1 回答
1282 浏览

go - 如何使用 golang 在 git repo 中签出特定的 SHA

我需要帮助以使用 golang 将代码检查到特定 SHA 数的 git repo

0 投票
1 回答
27 浏览

go-git - 如何解决提交到分支?

我需要找到所有带有提交的分支(标签)。在使用命令的 CLIgit上,可以使用git branch --contains <commit>命令。

go-git如何使用库做类似的事情?

0 投票
2 回答
349 浏览

git - 可以指示 git fetch pack 获取单个树对象吗?

简而言之,有没有办法让我有效地(在空间方面)从只支持智能协议但不支持过滤器规范的 git 服务器指定我想要的确切对象?

更多背景信息:由于 GitHub 在 pack 协议中缺乏过滤规范支持,我一直在尝试构建一种方法来获取多 GB 存储库,其中单个提交也包含多个 GB。我的想法是使用获取包请求(或在服务器上上传包),want仅指定一个提交对象,然后从那里获取该对象,获取它引用的树,在另一个请求中获取树对象,然后手动指定哪个我想要从那里得到的 blob 和树对象。但我发现,pack 协议似乎是从为您“想要”的特定提交或树提供尽可能多的数据的角度运行的。

这对我正在做的事情意味着每当我指定一个树哈希的提交时,我不仅得到提交或树对象,而且还得到它们包含的每个对象。在使用加深设置来限制我想要的提交次数时也会发生这种情况;0 不产生任何结果,而 1 产生上述结果。我已经验证了want仅指定 blob 的 a 确实会生成仅包含该 blob 的包文件,因此该部分确实可以按预期工作。