所以说我做到哪里,我在同一个区域编辑多行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是否可以识别用该语言编写的函数。