在Magit中,“隐藏”和“快照”有什么区别?


18

所述Magit用户手册包括两组“积攒”命令:小写命令保存一个藏匿,和大写命令保存一个快照。在咨询了Google,Stack Overflow和git-stash(1)手册页之后,我仍然不知道有什么区别。

有什么不同?


1
我的理解是,这stash还将重置(撤消)更改并将更改snapshot保留在工作空间中(如果您要在推送之前重新排列提交,这将很有用)。
wvxvw

Answers:


25

“隐藏”和“快照”变体均创建相同的隐藏对象。不同之处在于,当您创建快照时,隐藏的更改不会从工作树和/或索引中的文件中删除。(就像您为朋友度过的美好时光快照一样,这也不会使他们消失;-)

这旨在用作各种备份机制。假设您正在执行一些复杂的重构,并且您刚刚进行了测试,但修改后的代码仍然可以正常工作,但尚未完成。现在是创建快照的好时机,以便日后将其弄乱时可以使用。

当然,您可以只在您正在处理的分支上创建一个临时的“ wip”提交来完成相同的任务。通常就是我要做的。

您还可以通过启用Wip模式来自动记录进行中的工作。我确实启用了这些模式作为安全网,但是我仍然直接在当前分支上创建wip提交或创建快照。这些工具比wip裁判更容易使用。

请注意,Magit带有用Elisp编写的自己的隐藏实现。这对于实现快照变体以及仅工作树和仅索引存储变体是必需的。Git不提供任何这些变体。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.