制作`git stash show`,打印完整文件路径

时间:2018-06-01 13:51:09

标签: git

我尝试从存储中恢复单个文件,因此我需要文件的完整路径。但是如果我执行git stash show,那么通常只显示一条短路径。

e.g。

$ git stash show
 .idea/deployment.xml                               |   4 +-
 .idea/test.iml                                     |   4 +-
 .idea/workspace.xml                                | 635 +++++++++++++++------
 .../local/Black/NewsletterPopup/Block/Show.php    |  13 +
 .../local/Black/NewsletterPopup/etc/config.xml    |  15 +
 .../frontend/venedor/default/layout/popup.xml      |   9 +
 .../default/template/black/popup/index.phtml      |   1 +
 app/etc/modules/Black_NewsletterPopup.xml         |   9 +
 8 files changed, 505 insertions(+), 185 deletions(-)

有没有办法显示完整路径?

如果我执行git checkout stash@{0} -- .../local/Black/NewsletterPopup/Block/Show.php

然后我得到error: pathspec '.../local/Black/NewsletterPopup/Block/Show.php' did not match any file(s) known to git.

我已经 CTRL + F path的{​​{3}}但未找到任何相关内容。

2 个答案:

答案 0 :(得分:4)

您可以将git diff - 类型格式选项提供给git stash show,所以

git stash show --name-only

将是一种方式。

答案 1 :(得分:0)

这不是您问题的直接答案,但您可以git stash apply,然后重置您不希望受藏匿处影响的文件。像这样:

git stash apply

然后

git checkout -- file1.ext

等等,对于您 希望受藏匿处影响的每个文件。

@Mark给出的答案似乎有效。但是,让我们说你藏了15个文件,你想要从这15个文件中的14个进行更改。然后,仅应用完整的存储和回滚一个文件比手动应用14个文件更方便。