zoukankan      html  css  js  c++  java
  • [Java]JGit用法总结

    clone

    public static void gitClone(String remoteUrl, File repoDir) {
        try {
            Git git = Git.cloneRepository()
                    .setURI(remoteUrl)
                    .setDirectory(repoDir)
                    .call();
    
            logger.info("Cloning from " + remoteUrl + " to " + git.getRepository());
        } catch (Exception e) {
            logger.info(e.getMessage());
        }
    }

    checkout

    checkout要在/.git目录中进行

    public static void gitCheckout(File repoDir, String version) {
        File RepoGitDir = new File(repoDir.getAbsolutePath() + "/.git");
        if (!RepoGitDir.exists()) {
            logger.info("Error! Not Exists : " + RepoGitDir.getAbsolutePath());
        } else {
            Repository repo = null;
            try {
                repo = new FileRepository(RepoGitDir.getAbsolutePath());
                Git git = new Git(repo);
                CheckoutCommand checkout = git.checkout();
                checkout.setName(version);
                checkout.call();
                logger.info("Checkout to " + version);
    
                PullCommand pullCmd = git.pull();
                pullCmd.call();
    
                logger.info("Pulled from remote repository to local repository at " + repo.getDirectory());
            } catch (Exception e) {
                logger.info(e.getMessage() + " : " + RepoGitDir.getAbsolutePath());
            } finally {
                if (repo != null) {
                    repo.close();
                }
            }
        }
    }

    pull

    pull要在/.git目录中进行

    public static void gitPull(File repoDir) {
        File RepoGitDir = new File(repoDir.getAbsolutePath() + "/.git");
        if (!RepoGitDir.exists()) {
            logger.info("Error! Not Exists : " + RepoGitDir.getAbsolutePath());
        } else {
            Repository repo = null;
            try {
                repo = new FileRepository(RepoGitDir.getAbsolutePath());
                Git git = new Git(repo);
                PullCommand pullCmd = git.pull();
                pullCmd.call();
    
                logger.info("Pulled from remote repository to local repository at " + repo.getDirectory());
            } catch (Exception e) {
                logger.info(e.getMessage() + " : " + RepoGitDir.getAbsolutePath());
            } finally {
                if (repo != null) {
                    repo.close();
                }
            }
        }
    }

    show status

    show status要在/.git目录中进行

    public static void gitShowStatus(File repoDir) {
        File RepoGitDir = new File(repoDir.getAbsolutePath() + "/.git");
        if (!RepoGitDir.exists()) {
            logger.info("Error! Not Exists : " + RepoGitDir.getAbsolutePath());
        } else {
            Repository repo = null;
            try {
                repo = new FileRepository(RepoGitDir.getAbsolutePath());
                Git    git    = new Git(repo);
                Status status = git.status().call();
                logger.info("Git Change: " + status.getChanged());
                logger.info("Git Modified: " + status.getModified());
                logger.info("Git UncommittedChanges: " + status.getUncommittedChanges());
                logger.info("Git Untracked: " + status.getUntracked());
            } catch (Exception e) {
                logger.info(e.getMessage() + " : " + repoDir.getAbsolutePath());
            } finally {
                if (repo != null) {
                    repo.close();
                }
            }
        }
    }

    参考资料

    JGit API:http://download.eclipse.org/jgit/site/3.7.0.201502260915-r/index.html
    JGit Cookbook:https://github.com/centic9/jgit-cookbook

  • 相关阅读:
    lunix查询jdk安装路径
    (四)爬虫之动态网页
    (二)爬虫之数据提取
    图及其衍生算法(Graphs and graph algorithms)
    树及其衍生算法(Trees and tree algorithms)
    数据结构之链表(Linked list)
    查找与排序算法(Searching adn Sorting)
    数据结构之双端队列(Deque)
    数据结构之队列(Queue)
    多个git账号的SSH配置
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/9242728.html
Copyright © 2011-2022 走看看