3回まわってウンと働く人のブログ

犬顔メガネエンジニアのブログ。そのうちウンと働きます。そのうち。

JGitの使い方1 Gitクラスとinit

 

shirobit.hatenablog.com

前回の続きです。

今回から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()はファイル環境の読み込み(WindowsMac)、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)

 

shirobit.hatenablog.com