I also think so. If git porcelain commands have different modes which don't even share common paramenters (like create vs. list) they should go into different commands implemented in seperate classes.