2013-08-06 48 views
1

解決提交的空白問題(如將空白空間拖至現有的回購庫)最簡單的解決方案是什麼?刪除Git中的歷史尾隨空白

+1

解決空白問題,並承諾呢?如果你還沒有推,你會更好'git commit --amend';爲了將來你可以啓用默認的'pre-commit'鉤子,它可以防止尾隨空格。 –

回答

3

如果您的回購庫中存在拖尾空白的現有提交,那麼您需要更改這些提交(rewite歷史記錄),如果該回購已被其他用戶推送和克隆,則可能會非常痛苦。

但是,如果這是一個選項,那麼你可以使用像one in gitolite的腳本:

#!/bin/bash 

# from doener (who else!) 
# to be called as an index-filter 

if git rev-parse --quiet --verify $GIT_COMMIT^ >/dev/null 
then 
     against=$(map $(git rev-parse $GIT_COMMIT^)) 
     git reset -q $against -- . 
else 
     # Initial commit: diff against an empty tree object 
     against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 
     git rm --cached -rfq --ignore-unmatch '*' 
fi 

git diff --full-index $against $GIT_COMMIT | git apply --cached --whitespace=fix 

運行此類似:

git filter-branch --index-filter '. ~/git-scripts/ws-fix.sh'