git clone abstraction