如何在GIT上仅删除文件并忽略子文件夹

时间:2016-11-23 14:11:48

标签: git github

我希望能够删除本地文件夹和github中的所有文件,但我有一个我不想触摸的子文件夹。

如何在忽略子文件夹的同时删除所有文件?

4 个答案:

答案 0 :(得分:0)

如果您正在运行* nix:

find . -maxdepth 1 -type f | xargs git rm

在文件夹内。

为避免删除隐藏文件(例如.gitignore):

find . -maxdepth 1 -type f | grep -v '/\.' | xargs git rm

答案 1 :(得分:0)

您可以复制.git&回购后的子文件夹。

$ cp .git ~/TEST
$ cp sub-folder-name ~/TEST

然后删除所有文件和文件夹

$ rm -rf *

复制repo中的.git和子文件夹

$ cp ~/TEST/.git .
$ cp ~/TEST/sub-folder-name .

然后推送到github

$ git push -f origin master

答案 2 :(得分:0)

我的想法是:

git rm *.{fileending1,fileending2,...}

或:

git rm yourfirstfile yoursecondfile ...

答案 3 :(得分:0)

提交并推送

的结果
git rm -r \*
git read-tree -u --prefix=path/to/it/ @:path/to/it

如果您想保留索引状态,请在x=`git write-tree`上方的$x上方插入@

由于那会杀死你的.gitignore,你可以制作一个未经跟踪的

!*
path/to/it/

然后git clean -df将擦除除该路径中的所有未跟踪文件。