Discard staged changes only

This commit is contained in:
Luka Markušić 2022-05-08 13:30:43 +02:00
parent f7c44f2407
commit ca191159f5
36 changed files with 102 additions and 1 deletions

View file

@ -25,6 +25,10 @@ func NewStashCommands(
}
}
func (self *StashCommands) DropNewest() error {
return self.cmd.New("git stash drop").Run()
}
func (self *StashCommands) Drop(index int) error {
return self.cmd.New(fmt.Sprintf("git stash drop stash@{%d}", index)).Run()
}

View file

@ -12,7 +12,7 @@ import (
func (self *FilesController) createResetMenu() error {
red := style.FgRed
nukeStr := "reset --hard HEAD && git clean -fd"
nukeStr := "git reset --hard HEAD && git clean -fd"
if len(self.model.Submodules) > 0 {
nukeStr = fmt.Sprintf("%s (%s)", nukeStr, self.c.Tr.LcAndResetSubmodules)
}
@ -64,6 +64,28 @@ func (self *FilesController) createResetMenu() error {
},
Key: 'c',
},
{
LabelColumns: []string{
self.c.Tr.LcDiscardStagedChanges,
red.Sprint("stash staged and drop stash"),
},
Tooltip: "This will create a new stash entry containing only staged files and then drop it.",
OnPress: func() error {
self.c.LogAction(self.c.Tr.Actions.RemoveStagedFiles)
if !self.helpers.WorkingTree.IsWorkingTreeDirty() {
return self.c.ErrorMsg(self.c.Tr.NoTrackedStagedFilesStash)
}
if err := self.git.Stash.SaveStagedChanges("[lazygit] tmp stash"); err != nil {
return self.c.Error(err)
}
if err := self.git.Stash.DropNewest(); err != nil {
return self.c.Error(err)
}
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES}})
},
Key: 'S',
},
{
LabelColumns: []string{
self.c.Tr.LcSoftReset,

View file

@ -265,6 +265,7 @@ type TranslationSet struct {
LcDiscardAllChangesToAllFiles string
LcDiscardAnyUnstagedChanges string
LcDiscardUntrackedFiles string
LcDiscardStagedChanges string
LcHardReset string
LcViewResetOptions string
LcCreateFixupCommit string
@ -594,6 +595,7 @@ type Actions struct {
NukeWorkingTree string
DiscardUnstagedFileChanges string
RemoveUntrackedFiles string
RemoveStagedFiles string
SoftReset string
MixedReset string
HardReset string
@ -883,6 +885,7 @@ func EnglishTranslationSet() TranslationSet {
LcDiscardAllChangesToAllFiles: "nuke working tree",
LcDiscardAnyUnstagedChanges: "discard unstaged changes",
LcDiscardUntrackedFiles: "discard untracked files",
LcDiscardStagedChanges: "discard staged changes",
LcHardReset: "hard reset",
LcViewResetOptions: `view reset options`,
LcCreateFixupCommit: `create fixup commit for this commit`,
@ -1193,6 +1196,7 @@ func EnglishTranslationSet() TranslationSet {
NukeWorkingTree: "Nuke working tree",
DiscardUnstagedFileChanges: "Discard unstaged file changes",
RemoveUntrackedFiles: "Remove untracked files",
RemoveStagedFiles: "Remove staged files",
SoftReset: "Soft reset",
MixedReset: "Mixed reset",
HardReset: "Hard reset",

View file

@ -0,0 +1 @@
ref: refs/heads/master

View file

@ -0,0 +1 @@
02f629e46dbaa03b58196cced3df07b02c0daf22

View file

@ -0,0 +1,8 @@
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[user]
email = CI@example.com
name = CI

View file

@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

View file

@ -0,0 +1,6 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

View file

@ -0,0 +1,5 @@
0000000000000000000000000000000000000000 22f24c5fcc97c1ff826ecb66b60bdc01937f6052 CI <CI@example.com> 1652009263 +0200 commit (initial): file0
22f24c5fcc97c1ff826ecb66b60bdc01937f6052 9e7ff93a5c67a0ef098e9e436961746f333edf98 CI <CI@example.com> 1652009263 +0200 commit: file1
9e7ff93a5c67a0ef098e9e436961746f333edf98 02f629e46dbaa03b58196cced3df07b02c0daf22 CI <CI@example.com> 1652009263 +0200 commit: file2
02f629e46dbaa03b58196cced3df07b02c0daf22 02f629e46dbaa03b58196cced3df07b02c0daf22 CI <CI@example.com> 1652009266 +0200 reset: moving to HEAD
02f629e46dbaa03b58196cced3df07b02c0daf22 02f629e46dbaa03b58196cced3df07b02c0daf22 CI <CI@example.com> 1652009266 +0200 reset: moving to HEAD

View file

@ -0,0 +1,3 @@
0000000000000000000000000000000000000000 22f24c5fcc97c1ff826ecb66b60bdc01937f6052 CI <CI@example.com> 1652009263 +0200 commit (initial): file0
22f24c5fcc97c1ff826ecb66b60bdc01937f6052 9e7ff93a5c67a0ef098e9e436961746f333edf98 CI <CI@example.com> 1652009263 +0200 commit: file1
9e7ff93a5c67a0ef098e9e436961746f333edf98 02f629e46dbaa03b58196cced3df07b02c0daf22 CI <CI@example.com> 1652009263 +0200 commit: file2

View file

@ -0,0 +1,3 @@
x<01><>Á
Â0=ç+ö.È&ݦ.ˆ=õ3æ )%Ÿo>ÁÛ0 ÌZKÙYK;²২ª)Úqò!Y€ï1KfSv
Qg§½ëIóB<C3B3>yyáʱã¶Öò$ëGǬÎtåN¦Û>iø37yÛÁæÙ2+à

View file

@ -0,0 +1,3 @@
x+)JMU°΄d040031QHΛΜI5`°±Ί²ΰ<C2B2>Φ¶wΑ‡ήw.½ωhοTΣ[H
<19>Ώe“ς"Η¨ΰSς,αΚgu"<22><>YH
<EFBFBD>$x~5(ν;χrΥΆπ<CE86>ώσ-ΤΠ–+^

View file

@ -0,0 +1,2 @@
x<01>ŽÁ
Â0D=ç+ö.Èvn<õ3²É ¦-5Ÿo.Þ½ üáŵ”¹uã¡îªÀ,ú˜BNŽÇ˜}O(YF묈ËÁyg­3[Øu©€”™¼ZNö2¸ÎsŒšú”q¤ˆí‰È„w}¬;Ü'¸Ü§›~BÙžzŠk¹BÇ!zb†#¶dZÛ¤ªþ97óôëuþYAžŸJæ  BP

View file

@ -0,0 +1,2 @@
x<01>ŽA
Â0E]çÙ 2™$"BW=F2™Áµ¥Dðøæî><3E>÷àó¶®K·.ã©"¶A"æÌ ¹p)Ø<iåTrÔæ=PÈ<50>3{9äÝ-¢bਣIìT¯H•¨ÔÆà²OJÑ”On‡<6E>f{›æ‡|˺¿äÂÛz·Ž"d$oÏ0tœêò§nty‰3?ÄÇ9Ø

View file

@ -0,0 +1,2 @@
x+)JMU03c040031QHヒフI5`ーアコイ燹ヨカwチ<77>w.ス<><EFBDBD>モ[H
矢y<E79FA2>5<EFBFBD>来ミ(桍ァ ^-ンW(x9

View file

@ -0,0 +1 @@
02f629e46dbaa03b58196cced3df07b02c0daf22

View file

@ -0,0 +1 @@
test0

View file

@ -0,0 +1 @@
test1

View file

@ -0,0 +1 @@
hello there

View file

@ -0,0 +1 @@
hello there

View file

@ -0,0 +1 @@
{"KeyEvents":[{"Timestamp":1175,"Mod":0,"Key":256,"Ch":32},{"Timestamp":1991,"Mod":0,"Key":256,"Ch":68},{"Timestamp":2923,"Mod":0,"Key":256,"Ch":83},{"Timestamp":4453,"Mod":0,"Key":256,"Ch":113}],"ResizeEvents":[{"Timestamp":0,"Width":213,"Height":56}]}

View file

@ -0,0 +1,26 @@
#!/bin/sh
set -e
cd $1
git init
git config user.email "CI@example.com"
git config user.name "CI"
echo test0 > file0
git add .
git commit -am file0
echo test1 > file1
git add .
git commit -am file1
echo test2 > file2
git add .
git commit -am file2
echo "hello there" > file1
echo "hello there" > file2
echo "hello there" > file3

View file

@ -0,0 +1 @@
{ "description": "Discarding staged changes", "speed": 5 }