mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-31 23:19:40 +02:00
Discard staged changes only
This commit is contained in:
parent
f7c44f2407
commit
ca191159f5
@ -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()
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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",
|
||||
|
@ -0,0 +1 @@
|
||||
file2
|
@ -0,0 +1 @@
|
||||
ref: refs/heads/master
|
@ -0,0 +1 @@
|
||||
02f629e46dbaa03b58196cced3df07b02c0daf22
|
@ -0,0 +1,8 @@
|
||||
[core]
|
||||
repositoryformatversion = 0
|
||||
filemode = true
|
||||
bare = false
|
||||
logallrefupdates = true
|
||||
[user]
|
||||
email = CI@example.com
|
||||
name = CI
|
@ -0,0 +1 @@
|
||||
Unnamed repository; edit this file 'description' to name the repository.
|
Binary file not shown.
@ -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]
|
||||
# *~
|
@ -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
|
@ -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
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
x��Á
|
||||
Â0=ç+ö.È&ݦ.ˆ=õ3’æ
)%‚Ÿo>ÁÛ0ÌZKÙY‘K;²à§¨ª)Úqò!Y€ï1KfSv
|
||||
Qg§½ëIóB�yyáʱã¶Öò$ëGǬÎtåN¦Û>iø37yÛÁæÙ2+à
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
x+)JMU°΄d040031QHΛΜI5`°±Ί²ΰ�Φ¶wΑ‡ήw.½ωhοTΣ[H
|
||||
�Ώe“ς"Η¨ΰSς,αΚgu"��YH
|
||||
�$x~5(ν;χrΥΆπ�ώ–WΪσ-ΤΠ–+^
|
@ -0,0 +1,2 @@
|
||||
x�ŽÁ
|
||||
Â0D=ç+ö.Èv›n<õ3²É¦-5‚Ÿo.Þ½
üáŵ”¹uã¡îªÀ,ú˜BNŽÇ˜}O(YF묈ËÁyg3[Øu©€”™¼ZNö2¸ÎsŒšú”q¤ˆí‰È„w}¬;Ü'¸Ü§›~BÙžzŠk¹BÇ!zb†#¶dZÛ¤ªþ97ó’ôë%¼uþYAžŸJæ BP
|
@ -0,0 +1,2 @@
|
||||
x�ŽA
|
||||
Â0E]çÙ2™$"BW=F2™Á‚µ¥Dðøæî>�÷àó¶®K·.ã©"¶A"æÌ¹p)Ø<iåTrÔæ=PÈ�‚3{9äÝ-¢bਣIìT¯H•¨ÔÆà²OJÑ”On‡�f{›æ‡|˺¿äÂÛz·Ž"d$oÏ0–tœêò§nty‰3?ÄÇ9Ø
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
x+)JMU03c040031QHヒフI5`ーアコイ燹ヨカwチ�w.ス��モ[H
|
||||
矢y�5�来ミ(桍ァ^-ンW(x9
|
Binary file not shown.
@ -0,0 +1 @@
|
||||
02f629e46dbaa03b58196cced3df07b02c0daf22
|
1
test/integration/discardStagedFiles/expected/repo/file0
Normal file
1
test/integration/discardStagedFiles/expected/repo/file0
Normal file
@ -0,0 +1 @@
|
||||
test0
|
1
test/integration/discardStagedFiles/expected/repo/file1
Normal file
1
test/integration/discardStagedFiles/expected/repo/file1
Normal file
@ -0,0 +1 @@
|
||||
test1
|
1
test/integration/discardStagedFiles/expected/repo/file2
Normal file
1
test/integration/discardStagedFiles/expected/repo/file2
Normal file
@ -0,0 +1 @@
|
||||
hello there
|
1
test/integration/discardStagedFiles/expected/repo/file3
Normal file
1
test/integration/discardStagedFiles/expected/repo/file3
Normal file
@ -0,0 +1 @@
|
||||
hello there
|
1
test/integration/discardStagedFiles/recording.json
Normal file
1
test/integration/discardStagedFiles/recording.json
Normal 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}]}
|
26
test/integration/discardStagedFiles/setup.sh
Normal file
26
test/integration/discardStagedFiles/setup.sh
Normal 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
|
1
test/integration/discardStagedFiles/test.json
Normal file
1
test/integration/discardStagedFiles/test.json
Normal file
@ -0,0 +1 @@
|
||||
{ "description": "Discarding staged changes", "speed": 5 }
|
Loading…
x
Reference in New Issue
Block a user