【问题标题】:Git delete all unmodified filesgit删除所有未修改的文件
【发布时间】:2016-08-23 07:07:43
【问题描述】:

我在 Linux 平台的项目中使用 git。我在特定目录中有很多文件。我修改了该目录中的上述大约 50 个文件,但没有暂存和提交。我希望从该目录中删除所有其他未修改的文件?有没有办法做到这一点,使用 git 和 Linux 命令?

【问题讨论】:

    标签: linux git


    【解决方案1】:

    不知道你为什么要这样做......但你可以:

    # Save changes to stash
    git stash save
    
    # Remove everything left
    rm -rf ./*
    
    # Checkout (restore) all of the changed files
    git stash show --stat | grep -v changed | sed -e 's/|.*$//;' | xargs git checkout
    
    # Restore the changes to those files
    git stash pop
    

    【讨论】:

      【解决方案2】:

      您还可以为此使用更简单的命令:

      git clean -Xfd // capital X
      git clean -xfd // lower x
      

      它将清除您的工作目录中所需的文件。

      【讨论】:

        【解决方案3】:

        使用git clean 是您想要的。要删除 (-x) 这些文件和目录 (-d),请运行:

        $ git -dx
        

        如果您使用 -X 选项而不是 -x,那么您告诉 git 忽略的文件仍将保留(例如,构建工件)。

        您应该首先运行以下命令,让您知道会发生什么,但实际上不执行任何操作:

        $ git -ndx
        

        我推荐一个别名(给你的.gitconfig)来检查在你运行git clean会被删除的文件,因为这是我经常运行的东西。提醒我没有“添加”我想要保留的文件也很有用。

        [alias]
             # list files that would be removed via 'clean' (non-destructive)
             ifc = clean -ndx
        

        然后,运行git ifc(即“ifc”=“如果清理”)会显示所有未被跟踪且可以删除的内容。

        (编辑:这个答案假定我已经理解了这个问题;重新阅读这个问题后,我不确定是否是这样。)

        【讨论】:

          【解决方案4】:

          git reset --hard [HEAD] 应该为你重复工作

          重复问题How can I discard modified files?

          【讨论】:

          • 他不想丢弃修改过的文件
          猜你喜欢
          • 2011-03-30
          • 2020-05-19
          • 2018-12-02
          • 1970-01-01
          • 2011-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-10
          相关资源
          最近更新 更多