何かの技術を理解しようと思った時、あなたならどうしますか。入門書を読んだり、仕様書を読んだりする人もいるでしょう。しかしそれは技術の習得はできても、本質は理解できないかも知れません。 Gitのディレクトリ構造がなぜこうなっているのか、どういった仕組みで動いているのか…そんな疑問からはじまったのがGitletです。JavaScriptによるGit実装となっています。

Gitletの使い方

Gitletのインストールはnpmでできます。

npm install -g gitlet

では実際に使ってみましょう。基本的な使い方はgitコマンドと同じです。まず初期化します。

$ mkdir a
$ cd a
$ gitlet init
$ ls -al
total 0
drwxr-xr-x   3 nakatsugawa  staff   102  1 26 12:31 .
drwx------+ 43 nakatsugawa  staff  1462  1 26 12:31 ..
drwxr-xr-x   6 nakatsugawa  staff   204  1 26 12:31 .gitlet

ファイルを追加します。

$ echo first > number.txt
$ gitlet add number.txt
$ gitlet commit -m "first"
[master 48f284bb] first

追加しました。続いてクローンします。

$ cd ..
$ gitlet clone a b
Cloning into b
$ cd b
$ echo second > number.txt
$ gitlet add number.txt
$ gitlet commit -m "second"
[master 18b7358e] second

さらにフェッチしてマージします。

$ cd ../a
$ gitlet remote add b ../b

$ gitlet fetch b master
From ../b
Count 6
master -> b/master
$ gitlet merge FETCH_HEAD
Fast-forward

最後にブランチを切ってプッシュします。

$ gitlet branch other
$ gitlet checkout other
Switched to branch other
$ echo third > number.txt
$ gitlet add number.txt
$ gitlet commit -m "third"
[other 60bb58a7] third
$ gitlet push b other
To ../b
Count 9
other -> other

ここまでの一通りの操作がGitletにて可能です。1600行を越えるソースコードで表現されています。これによって開発者の方はより深くGitを理解できたとのことです。単純に使うだけでなく、本質を知るというのはGitの利用はもちろん、他の開発においても役立つ知識になることでしょう。

Gitletはnode/JavaScript製、MIT Licenseのオープンソース・ソフトウェアです。

Gitlet maryrosecook/gitlet