我不小心在my initial commit中輸入了一些空格 - 它在git diff --color
中顯示爲紅色。什麼是擺脫現有空白的最佳方式,以及如何避免再次發生這種情況?git - trim whitespace
我不一定要找一個內置的git命令。在Ubuntu上免費提供的任何外部程序也將受到歡迎。
我不小心在my initial commit中輸入了一些空格 - 它在git diff --color
中顯示爲紅色。什麼是擺脫現有空白的最佳方式,以及如何避免再次發生這種情況?git - trim whitespace
我不一定要找一個內置的git命令。在Ubuntu上免費提供的任何外部程序也將受到歡迎。
要修剪在當前目錄下的所有文件尾隨空白,使用:
sed -i 's/[[:space:]]*$//' *
爲了警告未來空格錯誤(這兩個尾隨空格選項卡之前和空格),並修復空白錯誤在補丁程序,將下面的代碼添加到您的gitconfig
文件:
[core]
whitespace = trailing-space,space-before-tab
[apply]
whitespace = fix
這對防止空白提交很有幫助,但是OP詢問刪除了已經提交的空白 – stevejpurves 2014-10-10 12:45:57
@stevejpurves:最上面一行說明了如何使用* sed *刪除尾部空白。據我所知,沒有git命令可以做同樣的事情。 – Zaz 2015-01-07 16:38:17
core.whitespace
指示GIT中標誌某些空白問題:
trailing-space
在一行結束時或在一個文件space-before-tab
警告的端部發出警告空格時,有使用的標籤之前的空間用於縮進apply.whitespace
在應用修補程序時使用。它檢查空白錯誤(上面列出的錯誤,在core.whitespace
中),並在嘗試修復它們(即刪除它們)後應用修補程序。
這些選項去~/.gitconfig
- 也就是說,一個.gitconfig
文件在用戶的主目錄(通常在Linux上/home/user/.gitconfig
,/Users/user/.gitconfig
在Mac OS X的根,我不知道在Windows,但我想某處在C:\Documents and Settings\user
)。
這解釋了空白設置(+1),但沒有回答「我如何擺脫現有的空白?」這個問題。爲了清晰起見,我更新了原始帖子。 – Zaz 2010-07-30 18:43:18
看到這個線程git remove trailing whitespace in new files before commit使用git rebase
刪除您已經提交的文件中的空白。
並且從所有子目錄中遞歸地修剪所有文件的空格可以使用。
find ./* -type f -exec sed -i's/[[:space:]] * $ //'{} \;
真棒我不知道git有這個功能。 – xenoterracide 2010-07-30 17:39:09
請參閱[此問題](http://stackoverflow.com/q/591923/470844)。 – ntc2 2013-03-13 23:46:50