如何解决如何从 git stash 中提取单个文件或对文件的更改?
在git stash 手册页上,您可以阅读(在“讨论”部分中,就在“选项”描述之后):
因此,您可以将存储(例如stash@{0}
,第一个/最顶层存储)视为合并提交,并使用:
$ git diff stash@{0}^1 stash@{0} -- <filename>
解释:stash@{0}^1
表示给定存储的第一个父级,如上面的解释中所述,是隐藏更改的提交。我们使用这种形式的“git
diff”(有两个提交),因为stash@{0}
/refs/stash
是一个合并提交,我们必须告诉 git 我们想要比较哪个父级。更神秘:
$ git diff stash@{0}^! -- <filename>
也应该可以工作(请参阅git rev-parserev^!
手册页以了解“指定范围”部分中的语法解释)。
同样,您可以使用git checkout从存储中检查单个文件:
$ git checkout stash@{0} -- <filename>
$ git show stash@{0}:<full filename> > <newfile>
要么
$ git show stash@{0}:./<relative filename> > <newfile>
( 请注意 ,这里的 stash@{0}
))。
您可能需要防止stash@{0}
外壳扩展,即使用"stash@{0}"
or 'stash@{0}'
。
解决方法
是否可以从 git stash 中提取单个文件或文件的差异而不弹出 stash 变更集?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。