mostly completed git_utils.py