如何在git中将文件添加到现有的存储区(stash)中?

13
当我执行git stash push <path/to/file>命令时,它会为其创建stash@{0}。 使用不同的文件重复相同的命令会创建另一个隐藏项 -> stash@{1}。 我还有其他逻辑上属于stash@ {0}的文件。
我能否将文件推送到现有的隐藏项中?

2
在创建存储时,您可以执行以下操作: git stash push <path/to/file1> <path/to/file2>,push 命令可以接受多个文件。 - Saurabh P Bhandari
1
Git stash就是一小堆没有在任何分支上的提交。与任何提交一样,一旦提交了,您就无法更改它的任何内容。您能做的只是创建一个新的、不同的提交——或者在这种情况下,一个新的、不同的stash——它具有您想要的内容,并停止使用旧的stash。我通常建议避免使用git stash:而是使用普通的提交。 - torek
2个回答

15

如果您的意思类似于git commit --amend,恐怕您没有这个运气,但是对于您的用例而言,以下操作是否可接受:

git stash pop

然后

git stash push ORIGINAL_FILES MORE_FILES

将文件分组?


默认情况下,pop命令将弹出第0个stash,即stash@{0},因此要弹出第一个nth stash,请使用以下命令: git stash pop stash@{n}然后使用以下命令: git stash push -m "有用的信息" <包括旧文件和新文件的路径规范> - Shashank Bhatt

2
根据git 文档

<stash>

此选项仅适用于apply、branch、drop、pop、show命令。

形式为stash@{<revision>}的引用。如果没有给出<stash>,则假定最新的存储(即stash@{0})。

所以你不能直接使用git stashpush命令来实现这一点。
下次可以尝试使用git stash push <path/to/file1> <path/to/file2> ...,因为push接受多个路径规范(文件名)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接