explain git procedure