如何使用rugged来检查我的git存储库中是否存在未提交的更改?

时间:2013-04-16 13:19:09

标签: ruby libgit2 rugged

如何使用rugged检查我的git repo中是否有未提交的更改?

很像How do I programmatically determine if there are uncommited changes?

4 个答案:

答案 0 :(得分:1)

哇。这个问题从一段时间以来就已经死了,但我想我现在正在使用学习/使用Rugged投入2美分。

现在有一种方便的方法Repository#diff_workdir

假设您要将工作目录与上次提交进行比较(相当于我认为只是普通的git diff)。你可以用这个来解决这个问题:

repo.diff_workdir(repo.last_commit)

希望这有助于某人!

答案 1 :(得分:0)

你以同样的方式做到这一点。询问状态或区分HEAD和工作树之间是否有变化。

Rugged尚未合并差异支持,因此您必须使用状态。

答案 2 :(得分:0)

最近添加了差异支持。您可以从github获取最新版本。

a = Rugged::Tree.lookup(repo, "806999").tree
b = Rugged::Tree.lookup(repo, "a8595c").tree

diff = a.diff(b)

deltas = diff.deltas
patches = diff.patches

答案 3 :(得分:0)

您可以使用Repository#status获得与git status类似的内容。

如果您只是想检查是否有任何未上映的更改:

repository.to_enum(:status).any?