2012-03-31 60 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