最近漸く「じっと」って言わなくなってきた。
色々やってみた結果、msysgit+posh-gitを入れてPowerShellでGitを弄るのが楽で便利ということになった。
で、どうやってその環境を構築するかって話を以下に。
ちなみにWindows8Pro64bit日本語版(コミケのMSブースで買った)で、OS入れた後VisualStudio2010入れただけのほぼ素の状態からやってます。
まぁWindows7でも大した差はないと思う。
後Cygwin入れるのは負けだと感じる人向け。
##Chocolateyのインストール
ChocolateyというのはPowerShellでのパッケージ管理アプリケーション。
MacPortsとかHomebrewとかの同じものですね。
要PowerShell2.0以上。
PowerShellを管理者権限で起動します。
で、以下のコマンドを入力。
> Set-ExecutionPolicy RemoteSigned
もう実行ポリシー弄ってるって人は弄らなくてもいい。
これに関して詳しいことはここを見て下さい。
後、-Scope CurrentUser
を入れるかどうかは各自適当に。
で、そのままでも新しいPowerShellを立ち上げてもいいので、以下のコマンドを実行。
> iex ((new-object net.webclient).DownloadString("http://bit.ly/psChocInstall"))
これでChocolateyがインストールされます。
cinst
コマンドが起動出来ればOK。
clist hogehoge
でインストール出来るパッケージを検索、cinst hogehoge
でパッケージインストール、cuninst hogehoge
でアンインストール、cup hogehoge
とかcup all
でアップデートです。
あと、cver all -localonly
で今入っているパッケージとそのバージョンが表示されます。
パッケージの検索については、ここで検索してもいいと思う。各パッケージのインストールコマンドが書いてあるのがいい。
##msysgitのインストール
Chocolateyがあるのでインストールは簡単。
> cinst msysgit
これでmsysgitはインストールされる。
###git-cheetahの解除
普通にmsysgit入れてると右クリックにGit Hereとかなんか色々なメニューが増える。
これがうざったいって人はPowerShell(かcmd)で以下のコマンドを打つ。
> cd "C:\Program Files (x86)\Git\git-cheetah"
> regsvr32 /u git_shell_ext64.dll
32bitOSの場合だとちょっと違うかもProgram Files (x86)→Program Filesとか。
regsvr32に渡すdllのファイル名が違う場合があるかもしれないが、そのフォルダに一つしかないと思うのでそのdllを指定すればいい。
regsvr32コマンド打ったらなんか解除されましたってウィンドウ出るのでそれでOK。
###環境パスの設定
gitコマンドが打てる様に、C:\Program Files (x86)\Git\bin\
のパスを通す。
PowerShellで$profile
を打つと、zshで言う.zshrcのファイルのフルパスが表示されます。
start $profile
でファイルを開くなり、なかったら作成するなりして中に以下コマンドを書く。
$Env:Path += ";C:\Program Files (x86)\Git\bin\"
PowerShellを起動しなおせばgitコマンドが打てる様になってます。
あとssh-keygen
でフォルダ指定がおかしくならないように以下も追加しましょう(多分他のコマンドでもおかしくなる場合がある)。
$Env:HOME = "C:\Users\(User名)"
##gitの設定
Windowsで日本語どう扱うか周りを主に。
emailとかnameとかのよくある最初の設定は書いてないです。
そこら辺はgit入門的なサイト調べてみて下さい。
###日本語の表示
gitをWindowsで日本語表示するためにする設定諸々。
> git config --global core.quotepath false
> git config --global core.autoCRLF false (or true or input)
quotepathはgitコマンドで日本語を表示する際にエスケープ表示しないようにするため。
autoCRLFはリポジトリからローカルにファイルをpullする時、pushする時の改行コードの変換をどうするか。
詳しい内容は以下のページを見て下さい。
Git のカスタマイズ - Git の設定:書式設定と空白文字
後、なんだかんだでgit guiやgitkは使う事があると思うので表示がおかしくならないように設定しておく。
> git config --global gui.encoding utf-8
ココらへんの設定はC:\Users\(User名)\.gitconfig
に書いてあります。
WindowsのNotepad(メモ帳)だと.gitconfig等のgitの設定が改行コードの関係でちゃんと見えないので、なんかエディタ入れましょう。
Chocolateyあるしcinst sublimetext2
とかcinst xyzzy
とか打てばエディタのインストールも簡単にできます。
##posh-gitのインストールと設定
posh-gitはPowerShellでGitを使いやすくするパッケージ。
コマンドTabによる補完とか、プロンプトにGitのブランチ名やステータスを表示するとかしてくれます。
msysgitのgit bashでもやってくれるんだけど、posh-gitの補完の方がちょっと便利です。
インストールはChocolatey(ry
> cinst poshgit
このままでも使うことが出来ますが、プロンプトの表示とか弄りたいときに面倒な場合があります。
start $profile
で設定ファイルを開くと分かるのですが、以下のコマンドが追加されています。
# Load posh-git example profile
. 'C:\tools\poshgit\dahlbyk-posh-git-198f2ab\profile.example.ps1'
このprofile.example.ps1に色々書いてあるので、最初の一行(Push-Location (Split-Path -Path……
)を除いた部分をコピペして上記の部分と差し替えるのもありです。
その場合、下記の場所だけちょっと書き換える必要あり。
……
# Load posh-git module from current directory
# ここを書き換える
Import-Module C:\tools\poshgit\dahlbyk-posh-git-198f2ab\posh-git
# If module is installed in a default location ($env:PSModulePath),
# use this instead (see about_Modules for more information):
# Import-Module posh-git
# Set up a simple prompt, adding the git prompt parts inside git repos
function prompt {
……
書き換えるフォルダは、設定ファイルの追加部分に書いてあるフォルダになります。
これで設定ファイルにプロンプトの表示を弄る関数が書かれるので、プロンプト弄りたいときに設定ファイル弄るだけでよくなります。
とりあえずこれでPowerShellを使ってgitを色々弄ることができると思います。
##難点
この設定でほぼ問題無いですが、文字化けする箇所があってgit add
とかで特定のファイルをaddするためにTabで補完かけようとすると文字化けする。
もちろんaddは出来ない。
どうしてもそうしたいなら、全部手で打つか、git gui使うしかない。
chcp 65001
を打てばいいと言われるかもしれないが、フォント設定周りの挙動が非常に怪しい。
なんで、その方法はここに記載していない。
※2013/01/31追記
そうそう。この設定だとS-JISのファイルをgit guiやgit diffとかで見ると日本語が文字化けします。
git config --global gui.encoding
の値をS-JISにすればgit guiでは見えると思いますが、今度はUnicode部分が文字化けする。
どっちかしか(しかもS-JISの方がダメ感高い感じで)見えない頑固な奴なので。
なんで、WinMergeとかのソフトをDiffToolに設定してgit difftoolとかしたほうが平穏な感じはする。
この他の設定やら入れたアプリケーションは別記事として書いていこうと思います。