2012-03-31 58 views
0

随着svn和基石这是微不足道的,但我似乎无法找到一种方法来做到这一点与Git或sourcetree(Atlassians优秀的可视化git工具mac sourcetreeapp)。Git vs SVN如何区分标签

我需要比较几个版本相同的分支上的两个提交。基石让我选择任何版本或标记,并与我的工作目录进行比较,但我似乎无法找到获得sourcetree的方法,或者使用git diff和filemerge(opendiff)来执行此操作。

E.g.

working dir HEAD 
change three 
change two 
change one Tag: works 

我需要比较HEADworks,但我似乎无法找到一个方法来做到这一点。我甚至无法像在SVN中那样从works中检出文件,它想要在该版本中提取整个存储库并清除我的工作目录。如果我可以并排获取文件,我可以运行opendiff或其他工具。

我错过了什么?

+0

好吧,像很多事情一样 - 睡眠就是这样的答案。在SourceTree中,如果Cmd--点击两个不同的标签,差异面板会自动显示针对这两个版本的累积增量。这是正确的在我面前,我没有看到它。 – user445658 2012-04-01 15:49:40

回答

0

你可以diff的标签,像这样:

git diff tag1 tag2 
2
  1. 您可以比较任意两个与提交git diff <commit hash1> <commit hash2>
  2. 您可以在任何两次提交与git diff <commit hash1> <commit hash2> -- file/path
  3. 比较单个文件也可以从一个特定的签出文件与git checkout <commit hash> -- file/path提交。

注意:您可以替换<commit hash>有任何标记,分支机构等

+0

我应该更清楚了,它会生成一个巨大的文本文件混乱,我无法导入到文件合并(opendiff)中。我希望能够并排查看这些文件。由于这两个文件没有导出,所以我的视觉差异工具不知道如何处理来自git diff的输出... – user445658 2012-03-31 20:44:48

+0

这里有一些链接应该指向正确的方向[link1](https:// gist .github.com/329690)[link2](http://stackoverflow.com/questions/255202/how-do-i-view-git-diff-output-with-visual-diff-program)。 – Andy 2012-04-01 14:36:49

0

运行gitk --all

选择第一个承诺。

右键单击第二个承诺,然后选择“差异这选择”

或者你也可以做到这一点与git的差异命令行。

+0

我不知道我在我的Mac上安装了'gitk'。这将工作。不如Cornerstone好,但它会完成工作。谢谢。 – user445658 2012-03-31 20:47:18