diff --git a/pkg/provider/git.go b/pkg/provider/git.go
index 9eea764ba1bf034a12826c5e18dc3641a9d7dd72..29cff84b2391fae151bfda3f1700ec27860c6b9a 100644
--- a/pkg/provider/git.go
+++ b/pkg/provider/git.go
@@ -164,8 +164,10 @@ func (repo *Repository) GetReleases(rawRe string) ([]*semrel.Release, error) {
 }
 
 func (repo *Repository) CreateRelease(release *provider.CreateReleaseConfig) error {
-	hash := plumbing.NewHash(release.SHA)
-	if hash.IsZero() {
+	var hash plumbing.Hash
+	if plumbing.IsHash(release.SHA) {
+		hash = plumbing.NewHash(release.SHA)
+	} else {
 		// hash is not valid, let's assume it is a branch name
 		resolvedRef, err := repo.repo.Reference(plumbing.NewBranchReferenceName(release.SHA), true)
 		if err != nil {