@@ -112,7 +112,14 @@ func (c *CheckoutTag) Checkout(ctx context.Context, path, url string, auth *git.
112112 if err != nil {
113113 return nil , "" , fmt .Errorf ("git commit '%s' not found: %w" , head .Target (), err )
114114 }
115- return & Commit {commit }, fmt .Sprintf ("%s/%s" , c .tag , head .Target ().String ()), nil
115+ err = repo .CheckoutHead (& git2go.CheckoutOpts {
116+ Strategy : git2go .CheckoutForce ,
117+ })
118+ if err != nil {
119+ return nil , "" , fmt .Errorf ("git checkout error: %w" , err )
120+ }
121+
122+ return & Commit {commit }, fmt .Sprintf ("%s/%s" , c .tag , commit .Id ().String ()), nil
116123}
117124
118125type CheckoutCommit struct {
@@ -218,6 +225,12 @@ func (c *CheckoutSemVer) Checkout(ctx context.Context, path, url string, auth *g
218225 if err != nil {
219226 return nil , "" , fmt .Errorf ("git commit '%s' not found: %w" , head .Target ().String (), err )
220227 }
228+ err = repo .CheckoutHead (& git2go.CheckoutOpts {
229+ Strategy : git2go .CheckoutForce ,
230+ })
231+ if err != nil {
232+ return nil , "" , fmt .Errorf ("git checkout error: %w" , err )
233+ }
221234
222- return & Commit {commit }, fmt .Sprintf ("%s/%s" , t , head . Target ().String ()), nil
235+ return & Commit {commit }, fmt .Sprintf ("%s/%s" , t , commit . Id ().String ()), nil
223236}
0 commit comments