1
是否可以在git pre-commit hook腳本中修改已更改的文件(我想整理xml)?如果是的話,該怎麼做?現在我有這樣的腳本:git pre-commit:修改預提交腳本中的文件
files=`git diff --name-only --cached`
was_xml=false
for file in $files
do
extension="${file##*.}"
xml="xml"
if [ "$extension" = "$xml" ]
then
tmp_file=$file"_xmlint"
echo $tmp_file >> fuck
xmllint --format --encode utf8 $file > $tmp_file
rm $file
mv $tmp_file $file
git add $file
was_xml=true
fi
done
if $was_xml ; then
git commit -m 'Xml cleanup'
fi
但它不工作...
哦,謝謝!但我怎樣才能從乾淨的過濾器腳本獲得git文件名?我試過使用%1(我正在寫bash),但它不起作用。 –
乾淨的過濾器被調用stdin上的文件內容,並將過濾後的結果放在標準輸出。它沒有得到正在使用.gitattributes工作的文件的文件名,您可以精確控制將要運行的文件。例如,如果您將重命名格式過濾器命名爲「indent-xml」,則可以將以下行添加到相應的.gitattributes文件中:''* .xml filter = indent-xml''。然後它會運行所有和只有你的XML文件。 – Wolf