代码之家  ›  专栏  ›  技术社区  ›  00__00__00

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

  •  1
  • 00__00__00  · 技术社区  · 8 年前

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

    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,可以是包装git调用的shell脚本

    1 回复  |  直到 8 年前
        1
  •  2
  •   LeGEC    8 年前

    您是否尝试过:

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

    没有结局 * ?

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