Git删除所有未修改的文件

时间:2016-08-23 07:07:44

标签: linux git

我在Linux平台的项目中使用git。我在特定目录中有大量文件。我修改了该目录中的大约50个以上文件,并且没有进行分段和提交。我希望从该目录中删除所有其他未修改的文件?有没有办法使用git和Linux命令来做到这一点?

4 个答案:

答案 0 :(得分:3)

不确定为什么要这样做....但你可以:

# 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

答案 1 :(得分:1)

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

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

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

enter image description here

答案 2 :(得分:1)

使用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”=“如果已清除”)显示未跟踪且可以删除的所有内容。

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

答案 3 :(得分:0)

git reset --hard [HEAD]应该适合你重复

重复提问How can I discard modified files?