【问题标题】:See what's in a stash without applying it [duplicate]在不应用的情况下查看存储中的内容[重复]
【发布时间】:2012-05-23 18:26:39
【问题描述】:

我看到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

标签: git git-stash


【解决方案1】:

来自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).

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

列出存储:

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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 2016-08-29
相关资源
最近更新 更多