support git info
add test, refactor code
add document