9

一个相关问题How do you stash an untracked file?回答“跟踪文件”。但是,这不适用于我的特定需求。

我正在尝试存储不在索引中的所有内容,git stash save --keep-index以便我可以在我的预提交挂钩中验证索引。这个想法来自 git-stash 手册页的“测试部分提交”示例。我想确保我实际提交的内容通过了测试,而不仅仅是工作目录中的内容。这是我到目前为止所拥有的:

echo "Running tests on the staging area."
git stash save --keep-index
# configure, build, run tests, clean
git stash pop; true

这似乎有效,直到我的工作目录中有未隐藏的未跟踪文件。一些搜索导致了两年前的功能请求:在 stash 中保存未跟踪和/或忽略的文件的选项,但没有别的。

我应该使用 stash 吗?也许有一个更好的方法涉及临时分支或其他东西。

4

2 回答 2

13

正如我对相关问题的回答,现在答案是肯定的:

从 git 1.7.7 开始,git stash接受--include-untracked在您的存储中包含未跟踪文件的选项。

git stash --include-untracked

或者您可以使用短-u选项。

git stash -u
于 2011-10-02T14:30:41.773 回答
2

不, git stash 只会“记录工作目录和索引的当前状态”。因此,存储不会拾取您未跟踪的文件。

正如您所建议的,切换到临时分支并在那里跟踪未跟踪的文件似乎是一种合理的方法。

于 2010-07-16T21:49:24.310 回答