2011-05-26 115 views
20

我正在使用git存儲庫。除git diff命令外,一切正常。 每當我修改任何文件,然後顯示整個文件的git diff命令被修改,即使我修改了一小部分代碼。顯示整個文件的Git diff命令被修改,而不是顯示修改過的小部分代碼

什麼可能是git diff顯示整個文件被修改而不是代碼的一小部分的原因? 也讓我知道git diff配置的設置。

diff --git a/application/routes.php b/application/routes.php 
index 2842f8d..6629d16 100755 
--- a/application/routes.php 
+++ b/application/routes.php @@ -1,671 +1,676 @@ -<?php -/** - * Set the routes. Each route must have a minimum of a name, a URI and a set of - * defaults for the URI. -/-?> +<?php +/* + * Set the routes. Each route must have a minimum of a name, a URI and a set of + * defaults for the URI. + */ +?> 
+0

你可以發佈'git diff'的輸出嗎? – hammar 2011-05-26 05:30:19

+0

diff --git a/application/routes.php b/application/routes.php index 2842f8d..6629d16 100755 --- a/application/routes.php +++ b/application/routes.php @ @ -1,671 +1,676 @@ - <?php -/** - *設置路線。每個路由必須至少有一個名稱,一個URI和一組默認的URI。 - */ - ?> + <?php +/** + *設置路線。每條路由必須至少包含一個名稱,一個URI和一組用於URI的默認值。 + */ +?> – Rahul 2011-05-26 05:44:30

+3

將差異粘貼到註釋中不會很好。也許你應該將其粘貼到pastebin(永久保存)並告訴我們URL。 – 2011-05-26 13:02:00

回答

1

您的編輯器是否設置爲自動重新格式化代碼?它可能是用於使用縮進標籤的文件,你改變它使用空格爲例?

+0

使用製表符縮進的文件。 – Rahul 2011-05-26 05:50:14

+0

@Rahul,我認爲你的編輯正在修改你的文件。你需要改變你的編輯器來停止這樣做。一,確保它不是重新格式化代碼。二,確保它沒有修改現有的行結尾。 – 2011-05-30 03:28:37

22

比較git diffgit diff -b的輸出。空白可能是責任。迴流文本可能是另一個(你沒有提到你存儲的內容)。

+1

git diff -b命令顯示適當的差異輸出。請讓我知道我需要做些什麼改變。在此先感謝 – Rahul 2011-05-26 05:52:38

+1

@Rahul:訣竅是弄清楚*什麼*空格造成的麻煩。有兩種選擇:它可以是行尾,可以添加/更改空格製表符。因此,例如在讀取類似「<?php \ n」的行中,您應該在當前檢出的文本字符前後查找空格和製表符,然後運行'git stash'並查找它們在以前的版本中。 'git pop'會恢復你的改變。此外,請告訴我們操作系統或系統您或任何其他人觸摸此代碼正在運行。 – 2011-05-26 13:06:21

11

該文件存儲在unix模式或windows模式下(具有不同的行結尾),當您保存文件時,將其保存爲相反的格式。

1

嘗試運行此命令。它正常工作對我來說:

git diff -U0 Filename | grep -v "diff\|index\|@@\|+++\|\---" 

此命令基本上除去含有 「差異」, 「指數」 線 「---」, 「+++」, 「@@」 使用的 「grep -v」命令和-U0刪除顯示在修改行上方和下方的多餘行。

試試這個用一條線變化的文件,你會更好地理解它:)

1

嘗試檢查編碼的文件。看起來內容相同但編碼不同的文件被標記爲完全不同。

相關問題