2013-08-06 47 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'