在子文件夹中应用所有隐藏的更改

时间:2017-11-09 10:59:39

标签: linux git ksh

我有一张糟糕的旧藏品清单 我先删掉了那些旧的

git reflog expire --expire-unreachable=7.days refs/stash

我有一个巨大的藏匿处,其中包含许多隐藏的更改。有些是为了保留其他一些会损坏我的生产系统。我经历了差异

git diff stash@{0}^1 stash@{0} 

我知道要保留哪些

我能做到

git checkout --patch stash@{0} -- myfilename

取消对myfilename的更改并且工作正常。 但是,我有一个大文件夹,里面有很多隐藏更改的文件。我想将所有这些应用但仅限于该子文件夹中。

我试图在ksh中使用通配符来处理它,但我不能正常工作

    git checkout --patch stash@{0} -- myfolder/*

结果

error pathspec [...] did not match any files known to git

解决方案不需要基于git,可以是一个shell脚本来包装git调用

1 个答案:

答案 0 :(得分:2)

你试过了吗?

git checkout --patch stash@{0} -- myfolder

没有结尾*

在执行git命令之前,你的 shell 可能会扩展myfolder/*,并列出当前存在于磁盘上的元素,这可能不是你想要的。