Create a new reference with the same name as the given reference but a different symbolic target. The reference must be a symbolic reference, otherwise this will fail.
The new reference will be written to disk, overwriting the given reference.
The target name will be checked for validity.
See git_reference_symbolic_create()
for rules about valid names.
The signature and message for the reflog will be ignored if the reference does not belong in the standard set (HEAD, branches and remote-tracking branches) and and it does not have a reflog.
The new target for the reference
The one line long message to be appended to the reflog
0 on success, GIT_EINVALIDSPEC or an error code