diff --git a/pkg/commands/git.go b/pkg/commands/git.go index c767b5917..4e416310e 100644 --- a/pkg/commands/git.go +++ b/pkg/commands/git.go @@ -471,11 +471,17 @@ func (c *GitCommand) RebaseMode() (string, error) { func (c *GitCommand) DiscardAllFileChanges(file *File) error { // if the file isn't tracked, we assume you want to delete it quotedFileName := c.OSCommand.Quote(file.Name) - if file.HasStagedChanges { + if file.HasStagedChanges || file.HasMergeConflicts || file.HasInlineMergeConflicts { if err := c.OSCommand.RunCommand(fmt.Sprintf("git reset -- %s", quotedFileName)); err != nil { return err } } + if file.HasMergeConflicts || file.HasInlineMergeConflicts { + if err := c.OSCommand.RunCommand(fmt.Sprintf("git checkout -- %s", quotedFileName)); err != nil { + return err + } + } + if !file.Tracked { return c.removeFile(file.Name) }