読者です 読者をやめる 読者になる 読者になる

すたらブログ

文系Webプログラマの備忘録

Windows: Git GUIを使う準備

git

(最終更新: 2016-11-22)

目次


GitGUIを選ぶ理由

コマンドラインだけでは差分や履歴の表示が見づらいので、その点でGUIツールはありがたいです。
私が試したGit用のGUIツールの感想は以下のとおりです。

名称 感想
GitGUI 軽快な動作。メモリ占有もわずか。
UIの日本語化が面倒で不完全。リポジトリを一括管理できず把握が面倒。複数のリポジトリを同時に操作する場合はウィンドウも複数開くので見づらい。
TortoiseGit 軽い。日本語にほぼ対応。Diffが左右で比較できる表示形式で、さらに内容を修正することもできる。リビジョングラフやZIPで圧縮など、便利な機能がたくさん。
右クリックメニューを作業の起点にするという手法に、どうにも馴染めない。機能ごとに別ウィンドウとなっており、ウィンドウの管理・把握が面倒。
SourceTree UIは日本語に完全対応。ひとつのウィンドウ内で操作を完結できる。
重い(←これが全て)。アトラシアンの会員登録が必要。
GitHubデスクトップ UIは英語のみ。重い。リモートは「origin」しか認識しないなど、機能がシンプルすぎる。

SourceTreeに乗り換えようかとも思いましたが、動作が重くてメモリも食うので、やはりGitGUIを使い続けることにします。
ただ、Git初心者で日本語対応じゃないとどうしても不安という方には、下記の記事の通りSourceTreeがオススメです。


入手

ダウンロード

インストール

ダウンロードしたexeファイルを実行し、ウィザードに従ってインストールします。

コマンドプロンプトでもgitコマンドを使えたほうが便利です。

リポジトリだけでなくPC内でも、改行コードはLFで統一したほうがいいと思います。
もしも後から変更したい場合はcore.autocrlfの値を変更して下さい。
(参考: 8.1 Git のカスタマイズ - Git の設定)

リリースノートは読まなくていいので、チェックを外した後でFinishを押します。
これで完了です。


初回設定

文字化け対策

(修正前)

(修正後)

ファイル内の日本語文章が文字化けしないよう設定します。
エクスプローラでの右クリックメニューの中から「Git Bash Here」を選んで、下記のコマンドを実行してください。

git config --global gui.encoding utf-8

リポジトリを作る

次項のユーザー設定のメニューを表示させるにはリポジトリが必要なので、先にリポジトリを作成します。
仮のフォルダでかまわないのでエクスプローラで開き、右クリックメニューの中から「Git GUI Here」を選びます。

なお、コマンドライン(Git Bash)の場合は、右クリックでGit Bash Hereを選んでgit initと入力して実行するだけです。

ユーザー設定

リポジトリの存在する場所でGitGUIを起動します。
メニューからEdit > Options...を選びます。
右側の枠で名前とメールアドレスを入力し、Default File Contents Encodingutf-8に変更して保存します。
なお、名前とメールアドレスは本物でなくてもかまいません。

SSH公開鍵を作成する

Git GUIのメニューからヘルプ > SSHキーを表示を選び、下記の手順で進めてください。

作成した公開鍵は普段は意識する必要はありませんが、リモートリポジトリとの通信などで用いられます。
なおWindowsでは、鍵のファイルはC:\Users\%USERNAME%\.ssh\に存在します。

  • id_rsa: 秘密鍵
  • id_rsa.pub: 公開鍵。GitHubなどに登録するのはこちら。

改行コードの警告を表示させない

インストールで改行コードをLFに自動変換するように設定していると、改行コードがCRLFのファイルをコミットしようとすると下記の警告がいちいち表示されます。

普段からLFでファイルを作成するようにしておけば問題ないのですが、どうしても自分のPCではCRLFを使いたいという場合は、この警告を表示させないように設定できます。
エクスプローラでの右クリックメニューの中から「Git Bash Here」を選んで、下記のコマンドを実行してください。

git config --global core.safecrlf false

日々の作業

ステージング

  1. Git GUIRescanを押します。
  2. 変更されたファイルがあるかどうか、Unstaged Changesの欄を確認します。
  3. Stage Changedを押して、次のコミット予定(ステージ)に加えます。
    なお、ファイルを個別にステージに加えたり外したりもできます。
    関連のない変更は別のコミットにすべきで、そのほうが履歴が分かりやすくなります。

コミット

  1. 今回のコミットに含まれる変更を、Staged Changes (Will Commit)の欄で確認します。
  2. 今回のコミットの説明文を記入します。
  3. Commitを押して、変更を確定します。

履歴を確認

コミットの履歴はメニューのRepository > Visualize All Branch Historyで確認できます。
「GitGUI」とは別の「gitk」が開きます。
単に変更履歴を見るだけでなく、特定の時点に戻ったり、そこから枝分かれして別のソースコードを書く、ということもできます。


学習に役立つページ、及び関連記事


欄外: 不要な設定

現在では下記の設定は不要だと思うので、本題から省きました。

日本語のフォルダやファイルの名前の文字化けを防ぐ

そもそも致命的な文字化けとなる場合はほぼないので、下記の面倒な設定は割に合わないと思います。

  1. git-gui.tclをコピーして、管理者権限の不要な場所へ移す。 ファイルの場所はGitのバージョンにより異なる。
    ※64bit機の場合は下記の「mingw32」を「mingw64」に読み替えること。
    1.9.5C:\Program Files\Git\libexec\git-core\git-gui.tcl
    2.5.3C:\Program Files\Git\mingw32\libexec\git-core\git-gui.tcl
    2.6.3C:\Users\%USERNAME%\AppData\Local\Programs\Git\mingw32\libexec\git-core\git-gui.tcl
    2.8.0C:\Program Files\Git\mingw32\libexec\git-core\git-gui.tcl
  2. 33行目にencoding system utf-8を追記する。
  3. 2170行目にencoding system cp932を追記する。
  4. 編集したgit-gui.tclを元ファイルと置き換える。

(33行目付近)

##
## Tcl/Tk sanity check
encoding system utf-8
if {[catch {package require Tcl 8.4} err]
 || [catch {package require Tk  8.4} err]

(2170行目付近)

        } else {
            set old_GIT_DIR {}
        }
        encoding system cp932
        set pwd [pwd]

画面表示の日本語化

UIの日本語化は不要だと思います。
下記の面倒な作業をしてまで日本語化するくらいなら、まずは日本語対応のSourceTreeを使って、Gitに慣れた後でGitGUIに戻ればいいと思います。

(1) Git GUI

下記のページのとおりに進めてください。

(2) gitk

  1. 上記のページで扱っている、v1.9.5ポータブル版のshare\gitk\lib\msgs\からja.msgを取り出す。
  2. 下記の場所を開く。
    • 64bit機: C:\Program Files\Git\mingw64\share\
    • 32bit機: C:\Program Files\Git\mingw32\share\
  3. gitk\lib\msgs\を作成し、その中にja.msgを設置する。