所以說我做到哪裏,我在同一個區域編輯多行git的差異,我也得到:有沒有辦法讓git diff顯示的行發生變化?
- Change 1
+ Change1
- Change 2
+ Change2
我可以更改的diff文件顯示是這樣的順序:
- Change 1
- Change 2
+ Change1
+ Change2
這樣我可以更容易地顯示我做了什麼改變,如果有人決定與github上的前一個不同我的提交。
所以說我做到哪裏,我在同一個區域編輯多行git的差異,我也得到:有沒有辦法讓git diff顯示的行發生變化?
- Change 1
+ Change1
- Change 2
+ Change2
我可以更改的diff文件顯示是這樣的順序:
- Change 1
- Change 2
+ Change1
+ Change2
這樣我可以更容易地顯示我做了什麼改變,如果有人決定與github上的前一個不同我的提交。
訂單的git diff
輸出由源代碼行的順序決定,因爲它依次工作。因此,在SO帖子的主題行中回答問題(「有沒有一種方法可以[重新]排序」)只是「不」。
但是,這似乎不是你的問題打算,根據你的例子。 (好東西,你提供了一個例子!)
讓我們來看看一些實際git diff
輸出,以及如何these two command line argument control knobs影響它:
-Un
,--unified=n
生成的diff與ñ線的情況,而不是通常的三。意味着
-p
。
--inter-hunk-context=lines
顯示DIFF大塊之間的範圍內,高達指定的行數,由此熔合是彼此接近大塊。
我做了一個只有README
文件的存儲庫,然後對它做了兩處更改。第一個變化是在第1行,第二個是上線9下面是標準git diff
輸出:
$ git diff
diff --git a/README b/README
index 441ad85..0e6fd7d 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This is a README file
+This is a README file MOD1
which I am using just
for showing some
cases of using
@@ -6,4 +6,4 @@ git diff with
flags to adjust
the amount of
context that will
-be shown.
+be shown. MOD2
讓我們用-U
從三線以減少上下文的數量只是一個:
$ git diff -U1
diff --git a/README b/README
index 441ad85..0e6fd7d 100644
--- a/README
+++ b/README
@@ -1,2 +1,2 @@
-This is a README file
+This is a README file MOD1
which I am using just
@@ -8,2 +8,2 @@ the amount of
context that will
-be shown.
+be shown. MOD2
差異是較短,但仍有一些上下文。 (順便提一句,請注意MOD1
沒有「above」上下文,而MOD2
沒有「below」上下文,因爲文件沒有高於或低於這一點的行數。通常,如果文件中有更多文本,則兩個git diff
輸出會稍微長一些。如果可用的話,我們將在第一行上面有三行上下文,在第一行上面有三行下面的第三行,我們會在第1行上面有1行,在第9行上面有1行。)
增加線-的上下文具有熔合的diff的副作用:
$ git diff -U4
diff --git a/README b/README
index 441ad85..0e6fd7d 100644
--- a/README
+++ b/README
@@ -1,9 +1,9 @@
-This is a README file
+This is a README file MOD1
which I am using just
for showing some
cases of using
git diff with
flags to adjust
the amount of
context that will
-be shown.
+be shown. MOD2
這是因爲,與4行第1行的變化以下上下文中,DIFF大塊顯示線1通過5包容;在第9行的變化之上具有4行上下文; diff hunk顯示第5至9行。第5行和第5行是相同的,所以這兩個胖子融合在一起。
或者,使用-U1
或有點瘋狂-U0
(沒有上下文的話),即使我可以用--inter-hunk-context
添加額外方面之間的第一和第二DIFF大塊,達到他們加入點。用-U1
,我需要--inter-hunk-context=5
才能起作用。
$ git diff -U1 --inter-hunk-context=5
diff --git a/README b/README
index 441ad85..0e6fd7d 100644
--- a/README
+++ b/README
@@ -1,9 +1,9 @@
-This is a README file
+This is a README file MOD1
which I am using just
for showing some
cases of using
git diff with
flags to adjust
the amount of
context that will
-be shown.
+be shown. MOD2
這個時候,第一個大塊顯示行1至2,並且所述第二顯示線8通過9.我們添加5條更多的線路,它們是線3,4,5,6,和7-和現在這兩個胖子相鄰並融合成一個差異羣體。
使用-U0
,我們需要--inter-hunk-context=7
,因爲基差異僅適用於第1行和第9行,並且我們必須添加第2行到第8行(7行)以使它們連接。
還有一個更相關的選項,你可以使用:
-W
,--function-context
顯示整個周邊變化的功能。
對於這個特殊的README
文件,其中包含純文本英語,這個選項是沒有用的,因爲沒有「功能」中有這樣一個文件。 -W
的工作取決於文件的語言,以及Git是否可以識別用該語言編寫的函數。