0

そのため、この git log エラーに何度か遭遇しています。

それを説明するために、この単純な Java コードを書きました。進行状況をコミットして (徐々に書き込んで)、git log -p --decorateを実行します。

class Mega {
    private int alpha = 0;
    private int beta = 1;
    private int omega = 5;

    public returnAlpha(){
        return this.alpha;
    }

    public returnBeta(){
        return this.beta;
    }

    public returnOmega(){
        return this.omega;
    }
}

これはgitログです:

commit 2dcc5243a943a7e1a3344479bfb6a21474c6c024 (HEAD, master)
Date:   Sat Mar 23 17:26:24 2013 -0700

    stage 2

diff --git a/untitled.java b/untitled.java
index 821a19e..b2ba345 100644
--- a/untitled.java
+++ b/untitled.java
**@@ -10,4 +10,8 @@ class Mega {**
    public returnBeta(){
        return this.beta;
    }
+
+   public returnOmega(){
+       return this.omega;
+   }
 }
\ No newline at end of file

commit 43fadfc5ec827cf24667494e350ca9bcda21ffd3
Date:   Sat Mar 23 17:26:01 2013 -0700

    stage 2

diff --git a/untitled.java b/untitled.java
index e5c38d9..821a19e 100644
--- a/untitled.java
+++ b/untitled.java
**@@ -6,4 +6,8 @@ class Mega {**
    public returnAlpha(){
        return this.alpha;
    }
+
+   public returnBeta(){
+       return this.beta;
+   }
 }
\ No newline at end of file

commit 46d27d8485cb296798e5490803b1b7a04313793f
Date:   Sat Mar 23 17:25:24 2013 -0700

    stage 1

diff --git a/untitled.java b/untitled.java
index 332a406..e5c38d9 100644
--- a/untitled.java
+++ b/untitled.java
@@ -1,5 +1,9 @@
 class Mega {
-   int alpha = 0;
-   int beta = 1;
-   int omega = 5;
+   private int alpha = 0;
+   private int beta = 1;
+   private int omega = 5;
+
+   public returnAlpha(){
+       return this.alpha;
+   }
 }
\ No newline at end of file

commit bb18a576d44b492e50906d3eac495956590ff263
Date:   Sat Mar 23 17:24:22 2013 -0700

    stage 0

diff --git a/untitled.java b/untitled.java
index e69de29..332a406 100644
--- a/untitled.java
+++ b/untitled.java
@@ -0,0 +1,5 @@
+class Mega {
+   int alpha = 0;
+   int beta = 1;
+   int omega = 5;
+}
\ No newline at end of file

commit d630ed1f1edff608488938ec3ea748a2d5a7bab1
Date:   Sat Mar 23 17:23:39 2013 -0700

    java added

diff --git a/untitled.java b/untitled.java
new file mode 100644
index 0000000..e69de29

ログを (スクリプトを使用して) 自動的に解析しており、一貫性を保つ必要があるため、このログの誤りを修正する必要があります。

さらに、コミットの量が増えると、ランダムなスペースなどの他の不整合が発生し、@ の後の行が実際には diff の一部になることがあります (この例の場合とは異なります)。

4

2 に答える 2

1

あなたが参照しているのは2行の範囲行(@@クラス...)であり、星があなたによって追加されていると仮定します(これは非常に紛らわしいです、ちなみに、質問の問題を本当に説明する必要がありました):

統合された diff 形式では、行範囲の後にテキストを含めることができます。Git はそれを行うだけなので、それに対処するのはあなたの仕事です。http://en.wikipedia.org/wiki/Diff#Unified_format

于 2013-03-24T06:53:38.167 に答える
0

ランダムなスペーシングが誤った違いをもたらすのを避けるために、空白のクリーンアップを行います (つまり、すべてのタブまたはすべてのスペース、行末にスペースを入れない、ファイルの末尾に空白行を入れない、すべてのファイルを改行で終わらせる)。おそらくあなたは が欲しくなりgit config apply.whitespace fix、これを修正するために歴史を掘り下げるでしょう。

于 2013-03-24T19:38:58.130 に答える