2010-07-16 67 views
9

相关问题How do you stash an untracked file?被回答为“跟踪文件”。但是,这并不适合我的特殊需求。git:我可以存储一个未跟踪的文件而不必将其添加到索引?

我试图隐藏一切不在索引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 

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

我应该使用隐藏吗?也许这是一个涉及临时分支机构或更好的方法的更好方法

回答

12

正如我回答了相关的问题,答案是YES现在:

正如吉特1.7.7的,git stash接受--include-untracked选项,包括你的藏匿未跟踪文件。

git stash --include-untracked 

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

git stash -u 
2

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

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

+1

我想我的“工作目录”的定义不同于git开发者的定义。 我已经解决了我的问题,通过使用git-checkout-index到临时目录并在那里建立。但是,如果可能的话,我宁愿使用git-stash。 – 2010-07-21 21:05:11

+0

这绝对是“工作目录”的一个奇怪的定义。我也会考虑将新文件作为我工作目录的一部分。 – allyourcode 2010-12-05 08:52:42

相关问题