behave like a grown-up git command