2

我对从HostA推送到远程的文件 (RemoteTest.txt) 进行了更改。在HostB上,我的状态是没有最后一次推送。

现在,当我使用“git diff”进入 bash 时,我看到了变化。

$ git diff origin/master head
 diff --git a/RemoteTest.txt b/RemoteTest.txt
 index 40604b4..b36b5e8 100644
 --- a/RemoteTest.txt
 +++ b/RemoteTest.txt @@ -1 +1,6 @@

..等等...

我试图在 C# 中使用

IEnumerable<string> paths = new List<string>() {@"origin/master", "head"};
TreeChanges tc = repo.Diff.Compare(paths);

但 tc 显示 0 变化。这样做的正确方法是什么?

提前致谢。

4

1 回答 1

3

您需要比较and引用所指向的Trees 的s。CommitHEADorigin/master

像下面这样的东西怎么样?

var headTree = repo.Head.Tip.Tree;
var remoteMasterTree = repo.Branches["origin/master"].Tip.Tree;

TreeChanges tc = repo.Diff.Compare(remoteMasterTree, headTree);

注意:Compare重载接受的可选路径列表应包含到比较文件中的文件的路径(或路径规范) Trees。例如,考虑到您的用例,您可以将new[] { "RemoteTest.txt" }第三个参数作为方法传递。

于 2013-03-22T17:21:45.250 回答