JGitの使い方1 Gitクラスとinit
前回の続きです。
今回からJGitでGit操作のやり方を説明します。
Git操作
使い方はAPIなどを読んでもらうとすぐわかると思います。
でも、環境の違いで動かなかったりすることがあるので、
紹介するコード以外にも、いくつか方法を探ってみてください。
紹介するのは僕の環境で実際に動いたコードです。
JGitの基本的なこと
JGitのGitクラスを操作してコマンドを実行します。
Gitクラスは、Repositoryクラスを使って生成します。
Repositoryクラスは、RepositoryBuilderクラスにGitリポジトリのパスを入れてbuild()して生成します。(ややこしいです。RepositoryBuild → Repository → Git)
Repository repository = new RepositoryBuilder()
.setGitDir(new File(gitDirPath)).readEnviroment().findGitDir().build();
Git git = new Git(repository);
setGitDirの引数はFileクラスなので、Gitリポジトリのパスを入れてFileクラスを生成しています。
readEnviroment()はファイル環境の読み込み(WindowsやMac)、findGitDirは.gitフォルダを探しているようです。
Gitコマンドは、---Command というクラスで実装されています。(InitCommandなど)
コマンドクラスを呼び出して、オプションなどをセットし、最後にcall関数を呼び出すことで、コマンドを実行します。
call(); するのを忘れないようにしましょう。
git init
上で紹介したGitクラスの生成は、すでにinitしてあるリポジトリへのものです。
新しくinitする場合、initコマンドが必要です。
Git git = Git.init().setDirectory(new File(gitDirPath)).setBare(false).call();
init()はstaticです。
setDirectoryの引数はFileクラスなので、同じようにリポジトリパスを指定しています。
setBareは、このリポジトリがベアリポジトリかどうかを指定します。
(ベアリポジトリがわからない人は
→ ベアリポジトリとノンベアリポジトリ:理論編〜GitでWordpressのテーマを管理 | トリコロールな猫 )
続きはこちら(addとcommit)