保存未跟踪的文件后,git stash不会显示给我

时间:2013-08-16 08:03:16

标签: git

使用git stash save -u后,

git stash不会显示未跟踪的文件:

D:\kzxd-usm\KzxdUsm>git status
Already up-to-date!
# On branch work
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       WebRoot/WEB-INF/jsp/usm/org/Copy of list.jsp
nothing added to commit but untracked files present (use "git add" to track)

我希望在用git stash save -u

隐藏文件后列出未跟踪的文件
D:\kzxd-usm\KzxdUsm>git stash list --stat
stash@{0}: On work: hide copy of list.jsp

它只有一些注释文本,并且没有隐藏文件信息。

5 个答案:

答案 0 :(得分:5)

使用git show stash@{0}^3显示所有未跟踪的文件。

答案 1 :(得分:1)

git stash只会隐藏git知道的文件中的更改:它不会存储未跟踪文件中的更改。

您可以使用git add告诉git该文件,然后使用git stash隐藏更改:

git add Copy\ of\ list.jsp
git stash

答案 2 :(得分:1)

在我的1.7.8.2中,存储@ {0} ^ 3无法显示未跟踪的文件。但是,我发现以下内容会在第二个日志条目中列出它们:

git log -2 --name-only stash @ {0}

如果要查看文件详细信息,可以使用-p而不是--name-。

答案 3 :(得分:1)

我找到的最佳答案是In git, is there a way to show untracked stashed files without applying the stash?,特别是这个答案 - https://stackoverflow.com/a/23712152/1019307

git rev-list -g stash | git rev-list --stdin --max-parents=0 | xargs git show --stat

答案 4 :(得分:0)

如果您使用git stash save -u藏匿,然后执行git stash show,则不会显示未跟踪的文件 - 该列表将仅包含对已跟踪文件的更改。

当你想与某人分享你的隐藏变化时,这是有道理的:你从git stash show得到的差异不会包含任何额外的垃圾(工作副本中未经处理的东西),但只会跟踪相关的变化文件。

使用git pop恢复隐藏的更改后,也会恢复未跟踪的文件。