[Java]JGit用法まとめ
6045 ワード
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