git:我可以存储未跟踪的文件而不将其添加到索引中吗?

时间:2010-07-16 21:46:14

标签: git pre-commit-hook git-stash

相关问题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

这似乎有效,直到我的工作目录中没有未跟踪的文件,这些文件没有被隐藏。一些搜索产生了两年前的功能请求:Option to save untracked and/or ignored files in stash,但没有别的。

我应该使用藏匿处吗?也许这是涉及临时分支或其他事情的更好方式。

2 个答案:

答案 0 :(得分:13)

当我回答相关问题时,答案现在是:

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

git stash --include-untracked

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

git stash -u

答案 1 :(得分:2)

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

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