fix checkout on empty git repos
diff --git a/worktree.go b/worktree.go
index e2f8562..ec672ba 100644
--- a/worktree.go
+++ b/worktree.go
@@ -139,6 +139,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
@@ -156,11 +163,6 @@
}
}
- c, err := w.getCommitFromCheckoutOptions(opts)
- if err != nil {
- return err
- }
-
ro := &ResetOptions{Commit: c, Mode: MergeReset}
if opts.Force {
ro.Mode = HardReset