我在Linux平台的项目中使用git。我在特定目录中有大量文件。我修改了该目录中的大约50个以上文件,并且没有进行分段和提交。我希望从该目录中删除所有其他未修改的文件?有没有办法使用git和Linux命令来做到这一点?
答案 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)
答案 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]应该适合你重复