2016-08-23 33 views
0

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

回答

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

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

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

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

enter image description here

1

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

$ git -dx 

如果使用-X选项,而不是-x,然后你告诉混帐忽略仍然会保留这些文件(例如,建立文物)。

您应该运行下面,首先让你知道会发生什么,但实际上没有做任何事情:

$ git -ndx 

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

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

然后,运行git ifc(即,“ IFC” =“如果清洗”)表示未进行跟踪,并且可以被移除的一切。

(编辑:这个答案假定我已经理解了问题;在重新阅读的问题,我不知道,如果是这样的话。)

相关问题