[Java] JGit 使用摘要
最编程
2024-03-09 21:12:31
...
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
下一篇: 使用 JGit 管理 Git 仓库
推荐阅读
-
2024 Java最全【零基础学Java】-ArrayList集合概述与基本使用(十四),阿里大牛整理-最后!
-
Java PGgeometry 类使用示例
-
Java QRCodeWriter 类使用示例 - 例 1:getQR
-
了解并使用 JAVA 中的 set 和 get 方法
-
java:使用 EasyExcel (a) 读取 excel
-
Java 创建了一个 HashMap 对象,并将学生姓名和成绩添加到其中,键是学生姓名,值是学生成绩,使用增强 for 循环遍历 HashMap 并输出学生成绩。
-
使用 java 随机写入生成的姓名和身份证号码,根据这些信息写入一个方法,生成仅供用户测试使用的 base64 代码
-
Java 解决方案类使用示例
-
让您开始使用 etcd 的文章(长达 10,000 字) -7 摘要
-
Java 使用 Jacob 调用 SAPI 合成语音