git解决空文件夹无法提交

public class Gitsvn {
        public static final String GITSVN = ".keep";

        private static void check(File path) throws Exception
        {
            File[] files = path.listFiles();
            if (files.length == 0) {

                System.out.printf("+ %s/.keep\n", path.getAbsolutePath());
                mark(path.getAbsolutePath());
            } else {
                if (files.length != 1 || !files[0].getName().equals(GITSVN)) {
                    for (int i = 0; i < files.length; i++) {
                        if (files[i].getName().equals(GITSVN)) {
                            System.out.printf("- %s\n", files[i].getAbsolutePath());
                            files[i].delete();
                        }

                        if (files[i].isDirectory()) {
                            try {
                                check(files[i]);
                            } catch (Exception e) {

                            }
                        }
                    }
                }
            }
        }

        private static void clear(File path, String target) throws Exception
        {
            File[] files = path.listFiles();

            for (int i=0; i<files.length; i++)
            {
                if(files[i].getName().equals(target))
                {
                    System.out.printf("- %s\n", files[i].getName());
                    files[i].delete();
                }
                else if (files[i].isDirectory())
                {
                    try
                    {
                        clear(files[i], target);
                    }
                    catch (Exception e)
                    {

                    }
                }
            }
        }

        public static void mark(String path)
        {
            File file = new File(path + "/" + GITSVN);
            try
            {
                file.createNewFile();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }

        public static void main(String[] args)
        {
            String home = System.getProperty("user.dir");
            File file = new File(home);

            try
            {
                if(args.length==2 && args[0].equals("-clean"))
                {
                    clear(file, args[1]);
                }
                else
                {
                    check(file);
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }

}

原文地址:https://www.cnblogs.com/zhizou/p/11643455.html

时间: 2024-08-06 17:48:08

git解决空文件夹无法提交的相关文章

Git提交空文件夹的技巧

这个只能说是技巧不能说是方法,原理是在每个空文件夹新建一个.gitignore文件,然后提交. 快捷命令: find . -type d -empty -exec touch {}/.gitignore \; 在项目根目录运行. 参考: https://stackoverflow.com/questions/115983/how-can-i-add-an-empty-directory-to-a-git-repository 原文地址:https://www.cnblogs.com/EasonJ

解决Git无法同步空文件夹的问题

思路:在每个空文件夹下创建空文件,同步后再删除 1 protected static Logger logger = Logger.getLogger(CreateFileInEmptyDir.class); 2 3 private static final String createFlag = "create"; 4 private static final String fillFileName = "填充文件.txt"; 5 6 public static

git无法上传空文件夹分析

今天发现git push之后,远程仓库缺了文件夹,查资料后发现git是不能上传空文件的,解决方法是在每个空文件夹内放入一个无意义文件,这样空文件夹就不是"空"文件夹了,等到我们不需要的时候,可以把无意义文件删掉,从而达到上传"空"文件夹的目的.而放入及删除无意义文件的过程,得益于Linus的思想,我们可以批量操作. 以下代码执行于Git Bash 在每个空文件夹内加入名为.gitkeep的无意义文件: find . \( -type d -empty \) -and

tomcat发布项目时,空文件夹未发布成功

问题背景: 项目发布到服务器时,缺少文件夹,到时向此文件夹写数据时发生错误. 后来经查,缺少这个文件夹,项目部署发布时,并不会把空文件夹发布上去 解决: 1.在空文件中加入,一个文件.就可以发布成功 2.或者新创建文件时,判断这个文件夹是否有,没有就新建

ActivityGroup打开空文件夹焦点问题及返回键问题

ActivityGroup成功的解决了几个activity交替切换的问题,且比Tabhost具有更强的可拓展性. 在做一款多媒体文件浏览的软件时候,遇到了如下问题: 问题一:打开空文件夹时,由于焦点无处附着,当前activity的onPause(),默认activity的onResume(). 打开一个空文件夹,子activity的adater为空,此时子activity的焦点无处附着,运行完notifyDataSetChanged()方法之后就会走入onPause()方法,进而activity

linux_inux中find批量删除空文件及空文件夹脚本

1.{}和之间有一个空格 2.find . -name 之间也有空格 3.exec 是一个后续的命令,{}内的内容代表前面查找出来的文件 linux下批量删除空文件(大小等于0的文件)的方法 find . -name "*" -type f -size 0c | xargs -n 1 rm -f 用这个还可以删除指定大小的文件,只要修改对应的 -size 参数就行,例如: find . -name "*" -type f -size 1024c | xargs -n

删除空文件夹 清除CS扩展名文件 bat

删除空文件夹.删的干净.删的彻底. 将下列代码复制到txt中保存.并把后缀.txt命成.bat.然后运行即可. 方案1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 删除指定目录及其子目录下的空文件夹.bat 代码: @echo offecho.echo 说明此工具会删除指定目录所在空文件夹及其子目录下的空文件夹,以节省空间.echo.echo.echo 本例只限删除10层

git提交空文件夹目录结构新

git 没有跟踪空目录,所以需要跟踪那么就需要添加文件,方法如下: find . -type d -empty -exec touch {}/.gitignore \;给所有的子空目录都添加gitignore文件:连接:http://stackoverflow.com/questions/115983/how-do-i-add-an-empty-directory-to-a-git-repository

[Windows]_[删除非空文件夹的注意要点]

场景: 1. 有时候程序须要生成一些暂时文件夹和暂时文件,在程序退出时须要删除,这时候用win32的api就可以完毕需求.自己遍历文件夹一个个removefile并非高效率的做法. //注意: //1.要删除的文件夹不能以\\结尾.仅仅能以文件夹名结尾.比方C:\\New Folder,而不是C:\\New Folder\\,不然会失败.能够使用/作为分隔符. //2.pFrom的值必须是以\0结尾的字符串,unicode字符串要以两个\0\0结尾. //3.能够使用std::string或st