diff --git a/library/git b/library/git index dd4a968f9f..b73d5cace2 100644 --- a/library/git +++ b/library/git @@ -199,6 +199,12 @@ def switch_version(module, dest, remote, version): if version != 'HEAD': if not is_local_branch(module, dest, version) and is_remote_branch(module, dest, remote, version): cmd = "git checkout --track -b %s %s/%s" % (version, remote, version) + elif is_local_branch(module, dest, version): + cmd = "git checkout --force %s" % version + (rc, out, err) = _run("git checkout --force %s" % version) + if rc != 0: + module.fail_json(msg="Failed to checkout branch %s" % version) + cmd = "git reset --hard %s/%s" % (remote, version) else: cmd = "git checkout --force %s" % version else: