git ignore and some better compile