diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-09-29 08:47:14 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-09-29 18:21:59 +1000 |
commit | b882ac9e066bce21c18d73122005f06acfda3bfa (patch) | |
tree | 85835667e83a585e381b2840b7de19031bb967f8 /pkg/commands/git.go | |
parent | b8da166ab1c66671d681bc2454b911993716de58 (diff) |
support nuking all submodules
Diffstat (limited to 'pkg/commands/git.go')
-rw-r--r-- | pkg/commands/git.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pkg/commands/git.go b/pkg/commands/git.go index 90fbc9890..c2c617b68 100644 --- a/pkg/commands/git.go +++ b/pkg/commands/git.go @@ -375,6 +375,23 @@ func includesInt(list []int, a int) bool { // ResetAndClean removes all unstaged changes and removes all untracked files func (c *GitCommand) ResetAndClean() error { + submoduleConfigs, err := c.GetSubmoduleConfigs() + if err != nil { + return err + } + + if len(submoduleConfigs) > 0 { + for _, config := range submoduleConfigs { + if err := c.SubmoduleStash(config); err != nil { + return err + } + } + + if err := c.SubmoduleUpdateAll(); err != nil { + return err + } + } + if err := c.ResetHard("HEAD"); err != nil { return err } |