Merge branch 'master' of https://github.com/src-d/go-git into fix/checkout-empty-repo
diff --git a/worktree.go b/worktree.go
index 67d7f08..152570c 100644
--- a/worktree.go
+++ b/worktree.go
@@ -140,6 +140,13 @@
 		return err
 	}
 
+	c, err := w.getCommitFromCheckoutOptions(opts)
+	if err == plumbing.ErrReferenceNotFound {
+		h := plumbing.NewSymbolicReference(plumbing.HEAD, opts.Branch)
+		w.r.Storer.SetReference(h)
+		return nil
+	}
+
 	if opts.Create {
 		if err := w.createBranch(opts); err != nil {
 			return err
@@ -157,11 +164,6 @@
 		}
 	}
 
-	c, err := w.getCommitFromCheckoutOptions(opts)
-	if err != nil {
-		return err
-	}
-
 	ro := &ResetOptions{Commit: c, Mode: MergeReset}
 	if opts.Force {
 		ro.Mode = HardReset