在做一个`git stash`时保持变化

Lei*_*sen 15 git

有没有什么方法可以运行git stash它创建我的文件存储,但也保持它们,以便我可以继续编辑它们.

我的动机是,我想为我正在做的一些工作创建一个临时快照,这样如果我搞砸了,我就可以回到它.但是,我的代码目前还没有我想要实际提交它的状态,如果我的测试工作正如我预期的那样,我想抛弃旧版本,而不是在我的历史中.

显然我可以复制我的仓库所在的目录,并在其中一个工作,但有更好的方法吗?

Lei*_*sen 16

有(据我所知)没有办法git stash用一个命令来做这个,但你可以用两个用途来做git stash.

您要运行的命令是:

git stash
git stash apply
Run Code Online (Sandbox Code Playgroud)

第一个采取您的本地更改并将它们推送到存储区,从而将它们从HEAD中删除.第二个从堆栈中获取更改,并将它们放回HEAD中,但也会在存储堆栈中保留它们的副本.

  • 您可以通过执行`git stash save`然后立即执行`git stash apply`来在一个命令中创建一个git别名. (4认同)

Jon*_*ink 6

我认为在这种情况下更好的解决方案是创建一个主题分支。

在 Git 中,分支非常便宜。

如果您有工作想“藏起来”以便稍后回来,请执行以下操作:

git checkout -b myStashBranch
git add .
git commit -m "savepoint when I foo..."
Run Code Online (Sandbox Code Playgroud)

然后,只需切换回您当前所在的分支:

git checkout -
Run Code Online (Sandbox Code Playgroud)

并继续手头的任务......

如果您想简单地扔掉刚刚保存的“隐藏”工作,请执行以下操作:

git branch -D myStashBranch
Run Code Online (Sandbox Code Playgroud)