【问题标题】:git - How to checkout files from another branch based on diff-filter?git - 如何基于 diff-filter 从另一个分支签出文件?
【发布时间】:2015-07-28 17:10:29
【问题描述】:

假设我想从另一个分支中检出当前分支中缺少的所有文件。

我知道我可以通过git diff OTHER-BRANCH diff-filter=D 找到这些文件,因为所有被认为已删除的文件都是我当前分支丢失的文件。

有没有办法做某种git checkout OTHER-BRANCH --diff-filter=D?或者您可能必须将所有文件从git diff 传送到git checkout

【问题讨论】:

    标签: git git-branch git-diff


    【解决方案1】:
    git diff <BRANCH-NAME> --diff-filter=D --name-only --exit-code | xargs git checkout <BRANCH-NAME>
    

    对复杂的文件名使用-0 标志(xargs -0)。 不用说,你应该在测试新的 git 命令之前备份。

    【讨论】:

    • 太棒了!这非常有效!我修复了你的命令——你需要在最后做git checkout &lt;BRANCH-NAME&gt;,否则它会尝试从你所在的当前分支中检出那些你没有的文件。
    • @aug 不错。使用我的 iPad,所以我无法测试它。很高兴它成功了!
    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多