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

  • 相关阅读:
    webservice的接口做自动化
    “国货之光”!国产弱网测试神器 QNET,比主流弱网测试工具强在哪?
    面试被问到:fiddler在工作中有哪些应用?怎么破?
    接口阶段总结(下)
    接口阶段总结(上)
    loadrunner 关联原来这么简单
    cookie+token+接口文档解读+接口用例设计+requests入门+postman使用
    如何修改 BeautifulReport 中每一个用例的描述
    如何测试(五)N95口罩如何测试?
    JMeter_响应数据为空以及中文乱码
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/9242728.html
Copyright © 2011-2022 走看看