git functionality