ChatGPT解决这个技术问题 Extra ChatGPT

在不应用的情况下查看存储中的内容[重复]

这个问题在这里已经有了答案:Is it possible to preview stash contents in git? (17 个回答) 2 年前关闭。

我看到 here 您可以应用/取消应用存储,甚至可以从存储中创建一个新分支。是否可以在不实际应用的情况下简单地查看存储中的内容?

他不是在调用 stash 应用程序,而是指应用存储的行为。撇开不清楚的术语不谈,问题是一样的。
要获得彩色差异输出:git stash show -p stash@{1} >~/.diff && vim ~/.diff(不必是 vim。任何文本编辑器,只要您的文本编辑器支持 diff 输出的语法突出显示)。
@TrevorBoydSmith 或只是 git stash show -p stash@{1} | view -
有点奇怪的观察,在 centos-7 上 view 被别名为 vi 并且 man view 显示 vim 的手册页。 (我将不得不更改我的 .bashrc 以使用您的新技巧(它比我的旧方式 IMO 更好)。)
git stash show <存储编号>

u
user664833

man git-stash(也可以通过 git help stash 获得):

这个命令隐藏的修改可以用 git stash list 列出,用 git stash show 检查,然后...

show [<stash>]
    Show the changes recorded in the stash as a diff between the stashed
    state and its original parent. When no <stash> is given, shows the
    latest one. By default, the command shows the diffstat, but it will
    accept any format known to git diff (e.g., git stash show -p stash@{1}
    to view the second most recent stash in patch form).

注意:根据 git-diff 文档,-p 选项会生成 补丁

列出存储:

git stash list

显示最新存储中的文件:

git stash show

显示最近存储的更改:

git stash show -p

显示命名存储的更改:

git stash show -p stash@{1}

可以考虑的一个非常有用的功能是列出所有本地存储的内容:git stash list | awk -F: ‘{ print “\n\n\n\n”; print $0; print “\n\n”; system(“git –no-pager stash show -p ” $1); }’ | less 它在过去对我有很大帮助(清理存储堆栈)。
带有固定引号的相同命令并且没有管道到 less,因此您仍然可以看到差异突出显示:git stash list | awk -F: '{ print "\n\n\n\n"; print $0; print "\n\n"; system("git stash show -p " $1); }' 按 [Q] 退出每个存储。
git stash show -p stash@{1} 列出存储中的所有文件。是否可以从存储中查看一个特定的文件?
git stash show -p stash@{0} --name-only 仅显示您的第一个存储中的文件名(而不是内容)。
@mrgloom 如果您想查看单个文件的隐藏更改,那么 git diff stash@{0}^! -- file.txt 之类的东西会这样做。有关详细信息,请参阅 here