我希望能够删除本地文件夹和github中的所有文件,但我有一个我不想触摸的子文件夹。
如何在忽略子文件夹的同时删除所有文件?
答案 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
将擦除除该路径中的所有未跟踪文件。