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

如何仅删除GIT上的文件并忽略子文件夹,git,github,Git,Github,我希望能够删除本地文件夹和github中的所有文件,但我有一个子文件夹,我不想碰它 如何在忽略子文件夹的同时删除所有文件?如果您正在运行*nix: find . -maxdepth 1 -type f | xargs git rm 在文件夹中 要避免删除隐藏文件(例如,.gitignore),请执行以下操作: 如果您正在运行*nix: find . -maxdepth 1 -type f | xargs git rm 在文件夹中 要避免删除隐藏文件(例如,.gitignore),请执行以下操

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


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

如果您正在运行*nix:

find . -maxdepth 1 -type f | xargs git rm
在文件夹中

要避免删除隐藏文件(例如,
.gitignore
),请执行以下操作:


如果您正在运行*nix:

find . -maxdepth 1 -type f | xargs git rm
在文件夹中

要避免删除隐藏文件(例如,
.gitignore
),请执行以下操作:


您可以将.git子文件夹复制到repo之外

$ 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

您可以将.git子文件夹复制到repo之外

$ 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
我的想法是:

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

我的想法是:

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


提交并推送

git rm -r \*
git read-tree -u --prefix=path/to/it/ @:path/to/it
如果要保留索引状态,请在上方插入
x=`git write tree`
,并在
$x
中为
@
插入子目录

因为这会杀死你的
.gitignore
s,你可以制作一个包含

!*
path/to/it/

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

提交并推送

git rm -r \*
git read-tree -u --prefix=path/to/it/ @:path/to/it
如果要保留索引状态,请在上方插入
x=`git write tree`
,并在
$x
中为
@
插入子目录

因为这会杀死你的
.gitignore
s,你可以制作一个包含

!*
path/to/it/

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

是否要在本地计算机上执行它并将更改提交给git?是否要在本地计算机上执行它并将更改提交给git?