公開日: 2023年9月17日

Git 第5回: ついでながら Windows でも Tig を使おう

Tig は Git for Windows に含まれています。インストールが不要な Portable 版も用意されていますから、気軽にダウンロードして気軽に試してみましょう。

スクリーンショット

図 1 (a): main ビュー & diff ビュー
図 1 (a): main ビュー & diff ビュー
図 1 (b): refs ビュー
図 1 (b): refs ビュー
図 1 (c): blame ビュー
図 1 (c): blame ビュー

ダウンロードとインストール

ここではインストール不要な Portable 版をダウンロードします。非 Portable 版とのちがいは、右クリックでのコンテキストメニュー (「Git GUI Here」とか「Git Bash Here」とか) が使えないという点です。そういった機能があったほうがよければ、非 Portable 版を選びましょう。

というわけで Portable 版はダウンロードして展開するだけです。下記のサイトの「64-bit Git for Widnwos Portable」というところをクリックすると、

「PortableGit-<バージョン>-64-bit.7z.exe」というファイル名でダウンロードされます。これを適当なフォルダに置いてダブルクリックすると、「PortableGit」というフォルダができて中身が展開されます。中を覗いてみると「git-bash.exe」という、いかにもなんかいろいろやれそうな感じの実行ファイルがありますが、まさにそのとおりで、Git も Tig も GNU nano もここから実行することができます。

Git Bash の設定

ホームディレクトリの設定

ホームディレクトリは Windows 側のHOME環境変数で設定されたフォルダとなります。[コントロールパネル] > [システム] > [詳細情報] > [システムの詳細設定] > [環境変数] で設定しましょう (図 2 (a) ~ (c))。ここで指定したフォルダに Git や Bash などの設定ファイルを置くことになります。本稿ではここで指定したフォルダのことを $HOME と表記することにします。
図 2 (a)
図 2 (a)
図 2 (b)
図 2 (b)
図 2 (c)
図 2 (c)

Git Bash 起動時に指定したフォルダに移動する

Git Bash 起動時に、リポジトリのある場所などに移動しておいてくれると便利です。そうするには git-bash.exe のショートカットをデスクトップなどに作り、右クリック > [プロパティ] > [作業フォルダー] の欄にフォルダのパスを入力します (図 3)。次回からはこのショートカットから起動すれば、設定したフォルダに最初から居る状態になります。
図 3
図 3

$HOME\.bashrc

Bash の設定ファイルは $HOME\.bashrc です。次の例では、プロンプトにカレントディレクトリの絶対パスを表示させるのと、コマンドのエイリアスを少々追加しています。
$HOME\.bashrc
PS1="\w% "
alias ll='ls -al --color=never'
alias la='ls -a --color=never'
alias ls='ls --color=never'
alias nano='nano -Ynone'

Mintty の設定

Portable Git では端末エミュレータとして Mintty を使います。Mintty を設定するには、Git Bash を起動し、タイトルバーを右クリックして Options を選択します。私の場合は次のように設定しています。

大項目小項目設定値
Looks

Theme

好きなものを選ぶ。独自のテーマを作る (後述) なら None で可。

Looks

Cursor

Block

Text

Font

MS ゴシック, 10pt

Keys

Ctrl+Shift+letter shortcuts

ON (こうしておかないと nano で Ctrl-C が使えない)

Window

Default size

150 x 50

Terminal

Type

xterm-256color

Terminal

Bell

no beep

なお、この画面で背景色や前景色を設定することができますが、 自分でカラーテーマを作るならそこでまとめて設定できるので (後述)、 ここでやる必要はありません。

ここで設定した内容は $HOME\.minttyrc に保存されます。

$HOME\.minttyrc
CursorType=block
Font=MS ゴシック
FontHeight=10
CtrlShiftShortcuts=yes
Columns=150
Rows=50
Term=xterm-256color
BellType=0

このファイルを手動で少し修正 (追記) します。IME がオンのときとオフのときとでカーソルの色が変わるようにしておきましょう。

$HOME\.minttyrc (追記)
CursorColour=20,20,20
IMECursorColour=70,130,180

ついでにここで、独自のカラーテーマを作ってみましょう。まず、$HOME\.minttyrc に次の 1 行を書き加えます。

$HOME\.minttyrc (追記)
ThemeFile=mytheme

mythemeのところは好きな名前でやってください。そのテーマ名で $HOME\.mintty\themes\ の下に、各色の RGB 値を記述したファイルを作成します。例えば次のような感じです。

$HOME\.mintty\themes\mytheme
ForegroundColour=   247, 252, 254      #f7fcfe
BackgroundColour=    34,  34,  34      #222222
CurSorColour=       247, 252, 254      #f7fcfe
IMECursorColour=     70, 130, 180      #4682b4
BoldBlack=           43,  43,  43      #2b2b2b
Black=              240, 131,   0      #f08300
BoldRed=            162,  87, 104      #a25768
Red=                238, 130, 124      #ee827c
BoldGreen=          147, 202, 118      #93ca76
Green=              130, 174,  70      #82ae46
BoldYellow=          13,   0,  21      #0d0015
Yellow=             247, 193,  20      #f7c114
BoldBlue=             0, 136, 153      #008899
Blue=                83, 114, 125      #53727d
BoldMagenta=        104, 105, 155      #68699b
Magenta=            165, 154, 202      #a59aca
BoldCyan=            89, 185, 198      #59b9c6
Cyan=                69,  87, 101      #455765
BoldWhite=          247, 252, 254      #f7fcfe
White=              159, 160, 160      #9fa0a0

※「ForegroundColour」等の「Colour」は「Color」ではなく「Colour」なので気をつけてください。

余談ですがこの例は、前回の記事で示した rxvt-unicode のカラースキームと同じです (気分を変えるために、背景色だけは少し変更していますが)。こうしておくと、FreeBSD と Windows とで同じ内容の .tigrc を使い回すことができます。

それから、もしおられればですが、xkeymacs を使用している方は Mintty 使用時は無効にしておいたほうがいいかもしれません (理由は忘れましたが、たぶん何か問題があって)。xkeymacs のタスクトレイアイコンを右クリック > [プロパティ] で表示されるダイアログの一番上にあるコンボボックスから「mintty (mintty.exe)」を選択し、そのとなりにあるラジオボタンから「XKeymacs を無効にする」を選択してください。

Git の設定

FreeBSD のときと同じように Git の初期設定をします。Windows の場合で気をつけたいのは、core.autocrlf の設定でしょうか。true にすると、チェックアウトのときは LF を CRLF に変換し、コミットのときは CRLF を LF に変換します。つまり作業ディレクトリ内では常に CRLF、リポジトリ内では常に LF となります。
$ git config --global user.name "mijinco"
$ git config --global user.email "0106@retrotecture.jp"
$ git config --global core.autocrlf true

Tig の設定

Tig の設定は $HOME\.tigrc に書きます。設定例は前回の記事を参照してください。

エディタを GNU nano にする

ありがたいことに Git for Windows には GNU nano も同梱されています。Git のデフォルトエディタに設定してしまいましょう。-Ynoneをつけるとシンタックスハイライトを無効にします。あったほうがよければ削除してください。
$ git config --global core.editor 'nano -Ynone'
設定は $HOME\.nanorc に書きます。Emacs 風なキーバインドにする例が 下記の記事にありますので、一読いただけたら幸いです。

Tig を起動する

Git Bash を起動して、リポジトリに移動し、tig と打ちます。リポジトリがないと起動すらしないのは FreeBSD のときと同じですので、第 3 回の記事を参考に何らかのリポジトリを用意しておいてください。
$ cd hp-example/
$ tig

GitHub や Bitbucket を利用する

GitHub や Bitbucket を利用する方法も FreeBSD の場合とほぼほぼ同じなので、第 2 回の記事を参照してください。

バグ?

2023 年 9 月現在の Git for Windows 最新版である 2.42.0.2 では、Tig の status ビューで [C] キーによるコミットを実行すると、コミットはできるものの、そのまま Tig が強制終了してしまうようです。正確な発生条件等はよくわかりませんが、とりあえず 2.33.0.2 に戻すと発生しなくなりました。

今回はここまで

これで FreeBSD でも Windows でも Git / Tig が使えるようになりました。こうなると次は自宅 LAN の中でしっぽりとリポジトリを共有してみたくなるものです。次回はそんなお話です。