我正在尝试做一件非常简单的事情:通过 ruby gem Grit 从 git repo 中读取差异。我正在创建一个文件并添加“这是我更改第一个文件”这一行。现在我这样做是为了得到差异:
r = Grit::Repo.new("myrepo")
c = r.commits.first
d = r.commit_diff(c.id).first
puts d.first.diff
这个的输出是:
--- a/First-File.asciidoc
+++ b/First-File.asciidoc
@@ -1,2 +1 @@
-This is me changing the first file
看到添加线前面的减号了吗?为什么 commit_diff 会反向显示?我知道如果我反转提交 shas,git 会反转差异,但这是一个仅提供提交差异的 Grit 库调用?
有什么线索吗?