2015-07-21 70 views
3

我已經在預提交鉤子中安裝了mvn java-formatter:format任務。此任務將格式化java源代碼。在預提交鉤子期間再次登臺文件?

pushd src/ > /dev/null 

mvn java-formatter:format 
RETVAL=$? 
if (($RETVAL == 1)); then 
     exit 1 
fi 

popd > /dev/null 

我需要附加新格式化的源文件來提交。我怎樣才能做到這一點?

回答

5

pre-commit hook應該能夠包含git add,以修改要提交的索引。

參見例如「git pre-commit hook, add file into index」。

嘗試git add -A :/.(見 「Add as if from the root folder of the repository」)

如果您只需添加這已經上演了文件,那麼你需要:

+2

這是不是也添加了以前沒有進行過更改的文件? – Melebius

+1

@Melebius真的。我已經修改了我的答案,只添加(已經)上演的文件。 – VonC

0

這是可能的,但需要一個棘手的腳本。

在這裏你可以找到解決同樣的問題。在那裏,它會在每次提交時更新文件版本,而不是格式化代碼。它完全正常工作: https://github.com/addonszz/Galileo/tree/master/githooks

然後,您只需使用'格式化代碼'算法替換'updateVersion.sh'文件上的'版本文件替換'算法。也許你需要改變一些東西,例如刪除分支限制,因爲在那裏,只有在'develop'分支上時腳本纔會運行。

此外,它只會改變文件,如果是上演。如果文件沒有上演,那麼它什麼都不會做。更準確地說,它會打印出每一步所做的事情。