こんにちはピンクです。最近 Git のクライアントを色々試してたので、今回はそれについて。
…の前に!
以前は Git にはインストーラーがなく、コマンドうったり Windows 環境だったら msysGit でごにょごにょしたり~というのが最低限必要だったと思うのですが、気づいたらいつの間にか Mac OS X、Windows 向けにインストーラーが出てました。びっくり。ドンドン導入の敷居が下がって良いですね。Mac と Windows ではインストーラーがあるので、インストール超簡単!
msysGit のページに msysGit と Git 公式のインストーラー比較が書いてあります。興味がある方は見てみると良いでしょう。ちなみに、後述の GitHub for Windws のコア機能は msysGit ベースらしいです。
Git 用語&流れ説明
簡単なことだけ書きます。
クローン:サーバーのリポジトリを複製して、ローカルにリポジトリを作成する。最初だけやる作業
コミット:ローカルリポジトリへ変更点を入れる
プッシュ:ローカルリポジトリの変更点を、サーバーのリポジトリに送る
プル:サーバーのリポジトリから変更点をローカルリポジトリに持ってくる
ローカルのリポジトリは自分だけの更新が入る場所です。それに対してサーバーのリポジトリは、複数人の更新が入る場所です。サーバーのリポジトリ=最新ファイルの置き場所、という感じです。
例)すでにあるリポジトリから持ってくる場合の流れ
1. クローンでローカルにファイルを複製
2. ファイルを編集してコミット(ローカルリポジトリが更新される)
3. プッシュしてサーバーのリポジトリに送る(リモートリポジトリが更新される)
4. [次回作業をするとき] 他の人が更新をしているかもしれないので、まずプルをして最新ファイルにする
以下、2 ~ 4 繰り返し
Git クライアント
Git クライアントによって「この作業を行うときの名前」というのが違っていたり、扱いに癖があります。そのあたりも書いてみます。
Git Gui(Windows / Mac)
Git 公式のインストーラーに含まれています。使いやすいかは……。慣れたらそれなりに分かります。日本語化されていますが、「から刈り込む」とかあるので、果たしてこれも分かりやすいのかどうか。
一緒にコマンドラインシェル Git Bash がインストールされます。
クローン:「リモート」>「追加」から。
コミット:「変更をコミット予定に入れる」ボタンを押す>「コミット」ボタンを押す
プッシュ:「プッシュ」ボタンを押す
プル:「リモート」>「取得元」>「origin」した後、「マージ」>「ローカルマージ」
GitHub for Windows / GitHub for Mac
GitHub の出しているクライアント。これをインストールするだけで、Git 自体がインストールされて使えるようになります。やりようによっては Bitbucket とかもいけますが面倒なので、「自分の GitHub アカウント専用」のクライアントと割り切るのが一番な気がします。
メトロっぽいデザイン&ちょっと独特な作りです。最低限のことをやるには良いのですが、少しややこしいことをしようとしたらコマンドを打つ必要がでてきます。
Windows 版では一緒にインストールされるコマンドラインシェル Git Shell が PowerShell でイケてるので、これを使う目的で入れてみるのもいいかもしれません(Mac 版で入っているかは未確認)。コマンドラインシェルなら Git Bash よりこちらがお勧めです。
クローン:自分の GitHub アカウント内リポジトリであれば、「GitHub」に表示されているはずなのでそこから「CLONE」。
他の GitHub アカウントや Bitbucket の場合、コマンドを打たないとクローンできないようです。
コミット:「uncommitted changes」部分にコミットメッセージを書いて「COMMIT」ボタンを押す。「uncommitted changes」がない場合は、変更箇所がないのでコミットする必要がない、ということ。
プッシュ:「sync」が青くなっていれば、プッシュする内容があるという意味。「sync」を押す。
プル:「sync」が青くなっていれば、プルする内容があるという意味。「sync」を押す。
この青くなっているかどうか、とかは、リポジトリ詳細画面に入ったタイミングで更新されてるようなので、いちいち戻ったり詳細にきたりする必要があったりします。
全体的に GitHub for Windows / Mac は普段コマンドを打ってる人からすると「あれをするのにはドコを見たら良いのか」というのが分かりにくいはず。いかに簡単にするかを突き詰めたせいで、逆に分かりにくくなっているような…なんで同じボタンにプッシュとプルの意味をつけたんだ、とか…もにょってしまいます。
SmartGitHg 4(Windows / Mac / Linux)
純粋な Git クライアント。商用は有料、非商用だと無料です。上記 2 つと異なり、一緒に Git がインストールされたりはしないので、使用に際しては別途 Git をインストールしておく必要があります(一番上で書いたインストーラーので OK です)。Windows クライアントの中ではコマンドを打つ場合との違和感が一番なく、分かりやすいと思います。
日本語が文字化けするのですが、ちょっと設定ファイルに追記すれば問題無く使えるようになります。参考:SmartGit での日本語の文字化け対処 – monaurallab (モノラルラボ)
クローン:「Project」>「Clone」>「Remote Git, Mercurial or SVN repository」にチェックして「Next」で進める。どこにクローンするかとか分かりやすく聞かれるので適宜入力。
コミット:変更ファイルがあると、そのファイルが表示されるので「Commit」ボタンを押す。コミットメッセージを適宜いれて「Commit」。一気にプッシュまでしたければ「Commit & Push」でも OK。
プッシュ:「Push」ボタンを押す。
プル:「Pull」ボタンを押す。
SourceTree(Mac)
無料で高機能です。見やすい。分かりやすい。日本語化されています。
クローン:「リポジトリ」>「リモートを追加」から。リモートの名前は通常「origin」で。あとは分かりやすく聞かれるので適宜入力。
コミット:「コミット」ボタンを押す。
プッシュ:「プッシュ」ボタンを押す。
プル:「プル」ボタンを押す。
Tower(Mac)
有料ですが高機能でかなり親切な作り。分かりやすいです。
クローン:「Repositories」>「Manager Repositories」
コミット:「Commit」ボタンを押す。
プッシュ:「Push」ボタンを押す。
プル:「Pull」ボタンを押す。
雑感
Windows はクライアントの選択肢が弱い気がします。TortoiseGit もありますが、私があんまり使っていないので比較から外しました。最初イマイチだった印象ですが、今は TortoiseGit も結構良いと聞きます。TortoiseSVN を使っていた人は選択肢に入れても良いかもしれません。
ここには専用クライアントではないので書きませんでしたが、WebStrom のように Git を扱える IDE も使っている人にとってはアツイのではと思います。
著者情報
- 30代 ディレクター兼マークアップエンジニア