是否可以在git中预览藏匿内容?

Ben*_*jol 507 git git-stash

我经常把工作放在以后,然后其他的东西出现,几周后,我想检查藏匿,并找出如果我将它应用于当前状态的工作树会发生什么变化.

我知道我可以在藏匿处做一个git diff,但是这显示了工作树和藏匿之间的所有差异,而我只是想知道藏匿什么会改变.

我怎样才能做到这一点?

小智 673

git stash show将显示您最近藏匿中更改的文件.您可以添加-p选项以显示差异.

git stash show -p
Run Code Online (Sandbox Code Playgroud)

如果您感兴趣的存储不是最新的存储,则将存储的名称添加到命令的末尾:

git stash show -p stash@{2}
Run Code Online (Sandbox Code Playgroud)

  • 使用`git stash show -p stash @ {0}`来查看特定的存储.0表示最后一个音,1表示倒数第二个..等等.`git stash list`将显示所有可用音. (28认同)
  • 如果您使用的是PowerShell,则必须将隐藏名称放在引号中.(即:`git stash show -p'stash @ {0}'`) (6认同)
  • 如果您想在文件中保存差异,请使用 `git stash show -p stash@{0}> stash.txt` (2认同)
  • 在 2019 年,您只需输入 `git stash show [-p] [stash index number]` (2认同)

seg*_*ult 85

要查看当前的藏匿列表,请使用

git stash list
Run Code Online (Sandbox Code Playgroud)

你应该能够看到一个列表,例如

stash@{0}: WIP on ...
stash@{1}: ...
stash@{2}: ...
...
Run Code Online (Sandbox Code Playgroud)

要在任何这些stashes上查看diff,请使用该命令 __CODE__


Jef*_*ard 33

我是gitk可视化git repos的图形用户界的粉丝.您可以查看最后一个藏匿的项目:

gitk stash
Run Code Online (Sandbox Code Playgroud)

您还可以使用查看任何隐藏的更改(如列出的那样git stash list).例如:

gitk stash@{2}
Run Code Online (Sandbox Code Playgroud)

在下面的屏幕截图中,您可以在左上角看到存储作为提交,在提交历史记录中显示的时间和位置,右下角修改的文件列表以及下部的逐行差异-剩下.隐藏的东西仍然隐藏起来.

gitk查看藏匿处

  • 您可以在命令行上提供多个"stash @ {X}"值,以便立即查看更多结果,但我还没有找到一种简单的方法来在gitk中说"显示所有存储条目". (5认同)
  • `gitk stash`似乎是`gitk stash @ {0}`的简写 (5认同)
  • 要显示gitk中的所有stas,你可以使用`gitk \`git stash list --pretty = format:%gd \``然后搜索"WIP on"跳转到下一个存储. (3认同)
  • [`gitk --reflog`](http://stackoverflow.com/a/32434045/86967)可以让你看到所有的藏匿处等等. (2认同)
  • @IkarPohorský我发布了一个新答案,其中包括 cmd 的说明,并且仅显示存储,而不显示其他提交:/sf/answers/4017702671/ (2认同)

Wes*_*ove 22

要查看未弹出的存储库中的所有更改:

git stash show -p stash@{0}
Run Code Online (Sandbox Code Playgroud)

要在未弹出的存储中查看某个特定文件的更改:

git diff HEAD stash@{0} -- path/to/filename.php
Run Code Online (Sandbox Code Playgroud)


hxy*_*yhi 9

以下命令可用于提取存储更改与任何其他存储、提交、分支或 HEAD 的差异。

\n
git stash show\ngit show\ngit diff\ngit difftool\n
Run Code Online (Sandbox Code Playgroud)\n

让\xe2\x80\x99s 看看我们如何使用上述每个命令。

\n
    \n
  1. git stash show
  2. \n
\n
\n

简单的命令 git stash show 给出了文件更改的非常简短的摘要,但不会显示与当前 HEAD 的更改的差异。

\n
\n
    \n
  1. git show
  2. \n
\n
\n

命令 git-show 用于查看各种类型的对象。

\n

命令 git-show 不仅用于可视化存储更改,\n还用于查看一个或多个对象,例如 blob、树、标签和\n提交。

\n
\n
    \n
  1. git diff
  2. \n
\n
\n

命令 git-diff 也是常用命令之一,用于显示提交之间、提交和工作树等的更改。

\n

默认情况下,git diff 将显示所选存储与存储库当前状态(修改的文件)的差异,除非指定了其他存储引用或提交。

\n
\n

要获得最顶层存储stash@{0}master分支之间的差异:

\n
git diff stash@{0} master\n
Run Code Online (Sandbox Code Playgroud)\n

只显示文件名而不显示更改的差异:

\n
git diff --name-only stash@{0} master\n
Run Code Online (Sandbox Code Playgroud)\n

查看所选文件的所选存储之间的差异:

\n
git diff stash@{0}^1 stash@{0} -- <filename>\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. git difftool
  2. \n
\n
\n

命令 git-difftool 还可用于查找\n所选存储与所选提交或分支或存储之间的差异

\n
\n

查看最新两个存储之间的差异:

\n
git difftool stash@{0} stash@{0}^1\n\ngit difftool --dir-diff stash@{0} stash@{0}^1\n
Run Code Online (Sandbox Code Playgroud)\n

概括:

\n

用于从选定存储中提取差异的命令:git stash show, git show, git diff, git difftool

\n

使用命令查看差异git stash show

\n
git stash show -p stash@{0}\n
Run Code Online (Sandbox Code Playgroud)\n

使用命令查看存储中的更改git show

\n
git show stash@{1}\n
Run Code Online (Sandbox Code Playgroud)\n

使用命令查看最新存储和选定提交之间的区别git diff

\n
git diff stash@{0} <commit-hash>\n
Run Code Online (Sandbox Code Playgroud)\n

参考:

\n

https://howto.lintel.in/how-to-see-stashed-changes-using-git-stash/

\n

https://git-scm.com/docs/git-show

\n

https://git-scm.com/docs/git-stash

\n


Wal*_*tes 6

是的,查看修改内容的最佳方法是保存在文件中,如下所示:

git stash show -p stash@{0} > stash.txt
Run Code Online (Sandbox Code Playgroud)


hlo*_*ore 6

当第一次问这个问题时,这可能不是一个选项,但是,如果您使用 PyCharm,则可以使用该UnStash Changes工具 (VCS->Git->UnStash Changes...)。这允许您查看隐藏更改的列表,以及弹出、删除、清除或应用(如果需要,进入新分支):

取消隐藏更改窗口

并查看每个存储的更改文件:

路径影响窗口

以及每个文件的差异。在差异中,您可以从隐藏的更改中挑选要应用到工作分支的单个更改(使用指向左的 V 形):

在此处输入图片说明


小智 6

git stash show -p <index number of stash stack>
Run Code Online (Sandbox Code Playgroud)

查找索引号:

git stash list

例子:git stash show -p 1


小智 5

除了gitk推荐之外是否有可能在git中预览藏匿内容?你可以安装tig和电话tig stash.这个免费/开放的控制台程序还允许您选择要比较的存储


use*_*729 5

除了建议使用的现有答案之外(以显示倒数第三个存储的差异)

git stash show -p stash@{2}
Run Code Online (Sandbox Code Playgroud)

请注意,在git-stash文档中写道:

还可以通过仅指定存储索引来引用存储(例如,整数n相当于stash@{n})。

因此也可以使用(这相当于上面的命令)

git stash show -p 2
Run Code Online (Sandbox Code Playgroud)

这也应该避免一些 Powershell 问题


归档时间:

查看次数:

74856 次

最近记录:

6 年 前