refactor git checkout process

for better control and monitoring
is this the responsibility of this class? I think this should be done outside of this function and then we can remove the null default value :smile: