问题标签 [libgit2]

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 回答
418 浏览

libgit2 - 在 libgit2 中存储 pop

git_stash_save()允许保存更改,类似于git stash. 回退有什么功能git stash pop吗?

我可以看到git_stash_foreach()git_stash_drop()。有没有办法使用它们来实现这个功能?


编辑:根据nulltoken 的回答,我预计以下代码可以工作:

没有报告错误,但未恢复更改。git_stash_save()有效(我可以看到消息git stash list)并且git_stash_drop()也有效。但是,git_checkout_tree()不会产生任何效果。

另外,我应该免费top_treetop_cmt

0 投票
1 回答
3096 浏览

c++ - 如何使用 libgit2 提交到 git 存储库?

由于没有复制粘贴示例来创建提交而不使用libgit2磁盘上的文件 ,据我所知,我认为我应该添加一个。

不要忘记此时(2013 年 3 月)libgit2 正在全面开发中,因此请查看官方文档和源代码,因为每天都会添加新功能:

0 投票
2 回答
948 浏览

c++ - 使用 libgit2 从 git 存储库中删除文件

假设您在 git 存储库中有一个文件:

  • 一个.txt

应该使用哪些 API 来创建删除该文件的提交?例如在这个问题中,文件被提交而不在磁盘上创建它。现在是否可以在不使用索引(舞台区域)的情况下删除该文件?

我期待一个类似的流程,也许为树构建器创建一个git_tree_entry,但似乎并非如此。git_reference_list()不列出文件,所以有死胡同。搜索删除和删除的来源也没有成功。

0 投票
1 回答
1474 浏览

c++ - How to get the last commit from HEAD in a git repository using libgit2?

Since there is no copy-paste example for getting last commit with libgit2 I thought I should add one. The examples in libgit2 make extensive use of git_oid_fromstr() ...

Don't forget that libgit2 is in full development at this time (March 2013) so have a look at official documentation and source code, as new features are added daily:

0 投票
1 回答
1274 浏览

branch - 如何使用 libgit2 创建分支

如何使用 libgit2 库创建分支,API 引用了提交目标,但是我应该为这个参数使用什么?

这是我到目前为止得到的代码,基于测试中的示例代码,但它们使用了许多硬编码引用,因此很难发现你应该在现实世界场景中使用什么,比如我应该在这个“目标”中传递什么实例。

0 投票
1 回答
526 浏览

indexing - 跟踪文件和暂存文件之间的编码差异

使用 libgit2 API,“添加”文件以进行跟踪或将修改后的文件添加到暂存区域之间有什么区别吗?

这是我目前用来暂存已修改的跟踪文件的代码:

我应该使用相同的代码将未跟踪的文件添加到索引吗?

0 投票
1 回答
643 浏览

macos - 如何将 libgit2 编译成 OSX 应用程序包?

OSX 对 Window 的 .DLL 文件的回答是一个“捆绑包”,或者我一直在阅读,但我不太清楚如何开始将 libgit2 构建成可用的东西。

我通常在 Windows 上工作,并且正在开发一组将在Unity3D中使用的插件。到目前为止,插件采用 Windows .DLL 文件的形式。但是,在 Mac 上使用 Unity3D 工作的开发人员无法使用该插件,因为它依赖于构建为libgit2 的 git2.dll 的本机代码。

根据 Unity3D 关于为桌面平台构建插件的文档,我需要以某种方式构建一个原生的bundle. 说明指向使用 XCode 执行设置捆绑项目的任务,但是在如何构建它时我似乎迷失了方向。

根据 libgit2 项目页面上的文档,我可以使用该CMake GUI实用程序

[...]生成特定于平台的构建项目或 IDE 工作区

但是,生成的 XCode 项目似乎不是一个bundle project,而是某种其他类型的项目,至少就我的目的而言,它是“垃圾文件”。

Unity3D 描述的捆绑包的预期格式是什么?

我怎样才能“混合-n-匹配”,从而可以构建一个 XCode 捆绑项目,只需从项目中的 libgit2 存储库中删除所需的文件,然后点击构建以获得我之前的问题中请求的格式?

0 投票
1 回答
121 浏览

c - 使用 libgit2 创建和提交标签

我一直在这里和那里使用 libgit2,试图更好地理解 Git 的功能。为此,我一直在实施一个小型迷你客户端作为学习练习,并且进展顺利。

但是,我似乎无法弄清楚如何提交使用该git_tag_create函数创建的标签。我想我需要将它添加到索引中,但我也不知道该怎么做。有人能指出我正确的方向吗?

0 投票
1 回答
147 浏览

c - 什么时候需要调用 git_remote_update_tips?

我一直在使用类似于libgit2的fetch 示例的 git fetch 功能,但我遇到了一些问题。提供的示例似乎对我不起作用。具体来说,git_remote_update_tips返回 -1 并giterr_last表示这是因为我已与遥控器断开连接。我尝试重新排序调用,所以git_remote_update_tips先来,但这会导致访问冲突。

我发现 API 文档和源代码在这方面对我来说不是很有启发性 - 我只是想知道在某处是否有指导或很好的解释来说明这个函数的确切作用以及何时需要调用它。

0 投票
1 回答
650 浏览

libgit2 - 如何创建历史图表

我正在尝试获取足够的信息来使用 libgit2 创建历史图表,但我不确定如何获得适当的提交分支名称等内容。

我想重现使用以下 git 命令生成的类似内容:

这是我正在使用的代码:

我可以遍历提交,但上面的代码有几个问题:

  • 我只是得到主主分支的提交,如果我迭代代码来更改每个分支名称的 revparse_single,那么我会得到所有提交,但有些提交显然是重复的,其中提交位于多个分支下
  • 我只是得到提交消息,作者和时间,那么我如何找出分支名称是什么?
  • 我做对了吗?