2017-08-24 123 views
0

我有2個字符串,我想他們之間的git diff。我可以創建file1並添加string1作爲其內容。是否可以'git diff'2字符串?

然後我可以創建file2並添加string2作爲它的內容。然後我可以git diff file1和file2。

但是,鑑於我有字符串作爲字符串(而不是文件內容),我可以避免這些冗長的步驟?有更容易的方法嗎?

喜歡的東西:

git diff "my first string" "my second string" # obviously does not work 
+2

你爲什麼要用這個git?字符串是單行還是多行? –

回答

2

如果你堅持git的方式,

git diff $(echo "my first string" | git hash-object -w --stdin) $(echo "my second string" | git hash-object -w --stdin) --word-diff 
+0

哇--word-diff太棒了謝謝 – danday74

+0

我將如何處理新的線字符?我試過\ n但沒有喜悅 - 謝謝 - 需要爲windows和linux工作 – danday74

+1

@ danday74 Plus'-e'在echo之後。 – ElpieKay

2

您不必使用該git的差異,Git是用於跟蹤您的代碼庫的變化。

有針對

diff <(echo "my first string") <(echo "my second string") 

一個很好的Linux命令這是一個很好的答案 https://stackoverflow.com/a/454549/4620609

+0

有沒有與此相當的Windows?我似乎無法得到接受的工作答案。 – tjwrona1992

+0

使用Windows上提供的任何diff工具...我不使用窗口 –

2

在執行層面,我想,git diff使用一定的diff工具(比如diff)來生成補丁,並重定向到尋呼機(默認爲less)查看。所以你不需要調用git diff來比較兩個字符串。

如果你想要補丁文件格式作爲git diff的輸出,流動命令將是一個幫助。

diff -u <(echo "my first string") <(echo "my second string")

-u附加告訴diff與統一的情況下輸出跳線。

順便提一句,git提供了一個配置項diff.external,允許您不通過內部差異機制來生成diff,而是使用給定的命令。環境變量GIT_EXTERNAL_DIFF具有相同的效果。

相關問題