私家版 Git For Windowsのインストール手順

私の独断と偏見によるGit for Windowsのインストール手順です。

Git for Windowsのダウンロードとインストール

以下のページよりダウンロードします。

https://git-for-windows.github.io/

SnapCrab_NoName_2015-8-19_22-44-58_No-00

Downloadをクリックし、インストーラーのダウンロードを開始します。

ファイルをダブルクリックしてインストーラーを起動します。

Capture 2016_09_04_0002_26 001

ライセンスを確認して、Nextをクリック。

Capture 2016_09_04_0002_31 001

インストール先ディレクトリを確認されるので、Gitをクライアントとしてのみ使う場合にはできるだけこのままで進めます。ただ、オープンソースのTracのようなITS/BTSと組み合わせる場合や、SSHを使ってサーバー公開をする場合などは、C:\Gitのように短めで、間にスペースが入らないディレクトリに設定してインストールをします。

VSのGit拡張や、その他Git関連ツールと組み合わせる場合には、標準のディレクトリとしておいた方が手間がかかりません。

Capture 2016_09_04_0002_56 001

インストールの選択オプションが表示されるので、選択します。

Additional IconsはBashを起動するためのショートカットをどこに置くかなので、好みでに決めて下さい。DesktopにBashのショートカットを置くかはお好みです。

Windows Explorer Integrationはファイルやディレクトリを右クリックしたときのコンテキストメニューに何を表示させるかの選択です。また、最終的にTortoiseGitやGit Extensionsを入れるのでウザイと思う人はここのチェックを外してもかまいません。Preview時代のGit for Windowsに含まれていたGit-Cheetahは、正式リリースには含まれていません。

Use a TrueType font in all console windowsにチェックを入れてしまうと、bash以外の全てのコンソールウインドウのフォントがLucida Consoleに変更されてしまい、漢字などの多バイト文字は文字化けしてしまうので、チェックを入れてはいけません。

選択が完了したらNextをクリックして進めます。

Capture 2016_09_04_0003_03 001

スタートメニューを追加されるか確認されるので、通常はこのままNextをクリックして先に進めます。

Capture 2016_09_04_0003_12 001

ここは環境変数pathに何を追加するかを選択します。

Use Git Bash onlyを選択した場合、インストーラーは環境変数pathには何も設定しません。pathを汚さないので、すでにMinGWやcygwinやその他UNIX互換環境等を構築されている方はこのオプションをとりあえず選択しておくのが無難です。インストーラーがスタートメニューなどに登録したbashとcmdのショートカットではシェルスクリプトが動いてそのコンソール内では必要なpathが追加された状態になります。

Run Git from the Windows Command Promptを選択した場合、インストーラーは環境変数pathに、C:\Program Files\Git\cmdを追加します。このディレクトリにはGit.exe, gitk.exe, git-gui.exe, start-ssh-agent.cmdのファイルだけが有り、そのほかのユーティリティ(ls, less等)への直接のpathは設定されません。コマンドプロンプトやPowerShellからはGitのコマンドだけが使用できます。(これがデフォルトの設定です)

Run Git and included Unix tools from the Windows Command Promptを選択した場合には、インストーラーは環境変数pathにC:\Program Files\Git\cmdとC:\Program Files\Git\mingw64\bin, C:\Program Files\Git\usr\binの三つを追加します。この三つが追加されることで、gitだけでなく、他のUnix由来のツール、lsやlessなどをWindowsのコマンドプロンプトから使用できるようになります。逆にそれらが不要でればRun Git from the Windows Command Promptを選択しておけば良いです。

選択したらNextをクリックして次に進みます。

Capture 2016_09_04_0003_20 001

レポジトリへのチェックイン、チェックアウト時の改行の取り扱いについてのオプションを選択します。

多くのサイトやインストール解説記事では一番上のCheckout Windows-style, commit Unix line endingsを選択するように薦めていますが、私は一番下のas-isをお勧めします。

一番上の選択をしてしまうと、チェックアウト時にテキストファイルの改行コードは全て、CRLFに変更され、コミット時には全てLFに変換されてしまいます。一見無害なようですが、twitterのTLを見ている限りこれによる利便性より被害の方が遙かに多いように見受けられます。改行の面倒はIDEやエディタが面倒を見ればいいのであって、gitに面倒を見てもらう必要性は基本的にないはずなので、ここは改行については何もしない一番下のCheckout as-is, commit as-is設定を強くお勧めします。

Checkout as-is, commit as-isを選択してNextをクリックします。

Capture 2016_09_04_0003_28 001

次にGit出使用するコンソールをCygwinで使用されているMinttyを使用するか、Windowsの標準コンソールを使用するか選択します。特にこだわりが無ければMinttyを選択しておくのが無難ですが、既にConEmuやConsole2を使われている方や、Windows 10で機能強化されてまともになったWindowsの標準コンソールが気に入っている方は、「Use Windows’s default console windows」を選択します。また、現行のConEmuでは以下のように最初からGit for Windows 2.x用のコンソール設定が用意されています。

SnapCrab_cmd_2015-8-19_23-0-11_No-00

コンソールを選択してNextをクリックします。

Capture 2016_09_04_0003_34 001

上のEnable file system cachingはPCのリソースは多少消費する代わりにgit status時などでの応答速度を改善するfscacheキャッシュを有効にするかしないかオプションです。マシンリソースに余裕のある人はチェックを入れましょう。またON/OFFは以下の要領で可能です。

下のEnable Git Credential ManagerはGit Credential Manager for Windows(GCM)をインストールするか、しないかのチェックです。GCMをインストールすることで、GitHubやTeam Foundation Services等にアクセスする差違の二段階認証に対応し、その認証情報をWindowsの資格情報マネージャーに保存できるようになるほか、通常のhttpsアクセスの際の認証情報も同様に保存されるようになり、パスワードの入力や、二段階認証の手間を減らせますのでインストールするようにしましょう。

capture-2016_12_02_0016_29-001

git diffコマンドで使用されるdiffをPerlスクリプトからdiffコマンドが呼び出される従来の方式を使用するか、gitに内蔵されたC言語で作られたdiffを使用するかの選択で、チェックを入れると後者の内蔵diff機能が選択されます。

ウィザードに書かれているように内蔵diff機能はPerlスクリプトより高速ですが、十分にテストされているとは言えません。互換性や動作に問題が出ることもまだ考えられるので、とりあえずチェックしないで使用するが現状は無難だと思います。

Nextをクリックするとここでインストーラーがインストールを開始します。

インストーラーがファイルのコピーを終えるとインストールは終了です。

Capture 2016_09_04_0003_42 001

Capture 2016_09_04_1540_08 001

グローバルの設定

グローバルの設定を行います。

スタートメニュー(画面)で選択するか、デスクトップのGitのアイコンダブルクリックしてGit bashを起動します。

以下のようにコマンドを入力して最低限の設定を行います。5番目から7番目はUNICODEに対応させるための設定です。(詳しくはここを参照)

user.nameにはご自身の姓名をローマ字で、user.emailには普段使用するメールアドレスを使用します。また、そのメールアドレスがGravatarに登録されていれば、GitExtensionsなどでGravatarのアバターが使用されます。

上の内容が、環境変数homeで設定されたディレクトリの.gitconfigファイルに保存されます。

また、Git GUIで文字化け等あるようでしたら以下の設定も追加してください。

 SSHキーの作成

Windows環境のみで使用するのであればSSHキーの作成や設定は特必要ありませんが、GitHubなどを使用するのであれば作成しておいた方が無難なので、OpenSSHでのsshキーを作成する方法を説明します。

スタートメニュー(画面)でGit Guiを選択して起動します。

SnapCrab_Git Gui_2016-3-16_10-47-43_No-00

HelpメニューのShow SSH Keyを選択します。

SnapCrab_Your OpenSSH Public Key_2016-3-16_10-49-10_No-00

Generate Keyをクリックします。

SnapCrab_OpenSSH_2016-3-16_10-50-29_No-00

パスフレーズの入力が促されるので、入力します。これはもう一度聞かれるので、同じパスフレーズを入力します。

SnapCrab_Your OpenSSH Public Key_2016-3-16_10-51-22_No-00

パスフレーズを二回入力すると、環境変数homeのディレクトリのしたに.sshディレクトリが追加され、そのディレクトリに公開鍵(id_ras.pub)と秘密鍵(id_rsa)の二つのファイルが追加されます。また、上画面には公開鍵が表示されます。

また、楕円曲線DSAを使用したい場合には、コマンドラインでの操作となるが、以下を参考にしてください。

Git for WindowsのopenSSHが新しくなったので、楕円曲線DSAでSSHキーを作って見よう

posh-gitのインストール

次にPower ShellでGitを取り扱う際の操作性を向上させるposh-gitをインストールしましょう。Git bashも悪くないですが、WindowsでGitを使うのであれば、無理に*nixのコマンドインタプリターを使ったり勉強することも必要ないので、Windowsの標準的なコマンドインタープリタで生きましょう。

posh-gitをインストールするとgitコマンドがタブ保管できるようになるほか、Power Shellのコマンドプロンプトにブランチ名ステージングされていない追加、変更、削除のファイル数、同様にステージングされたファイル数が表示されるようになります。

また、Power Shellは4.0以後を使用するようにします。

Power Shellのセキュリティ設定を確認します。

管理者権限でPowerShellのコンソールを起動して以下のコマンドを入力します。

結果がRestrictedであった場合には、以下のようにセキュリティ設定を署名付きのコマンドレットであれば使用できるように変更します。

権限的な部分での準備は以上です。

posh-gitのインストールはPsGetを使う事が便利なので、まずPsGetをインストールします。

インストール方法はPsGetのページに書かれているとおりで、上で使用した管理者権限の付いたコンソール上で以下のように入力(コピペ)して実行します。

続いてposh-gitをインストールします。

-Startupオプションをしておかないと、次回起動時以降Load-Moduleコマンドで一々posh-gitを呼び出さないと行けなくなります。

インストール後の説明通り、プロファイルをリロードします。

gitで管理されているフォルダで、以下のようにコマンドプロンプトにカレントブランチ等が表示されれば成功です。

エディタの設定

コミット時にコミットログの入力に必要なエディタは標準でvi(vim)が設定されていますが、気に入らない場合には他のエディタにすることもできます。その場合にはUTF-8(BOMなし)で保存できるエディタに変更します。

コミットメッセージのエディタをGitHubのATOMに変更する

Git for Windows標準ではvimがエディタとして設定されていますが、GitHubのATOMを使用したい場合には、HOMEの.gitconfigに以下を追加します。

–waitオプションは必須です。このオプションを指定しないと、コミットメッセージの保存、ATOMの終了を待たずにgitがコミット処理を進めてしまいます。

コミットメッセージのエディタをVisual Studio Codeに変更する

–waitオプションはATOMと同じ理由で必須です。上の設定はVS Codeセットアップ時にPATHが通してある前提です。

コミットメッセージのエディタを秀丸に変更する

以下は秀丸エディタのの場合の設定例です。

コミットメッセージのエディタをnotepad2に変更する

lsの文字化け対策

おもにtwitterなどでls文字化けするツカエネー的な書込をよく見掛けるのですが、MinGW界隈では良く紹介される有名な方法でlsでの漢字ファイル名の文字化けは回避できます。

基本的にはlsのコマンドオプションである”–show-control-chars”オプションを指定しするだけです。(現状のGit for Windowsを使用する場合インストール時にグローバルの設定として–show-control-charsをつけたエイリアスが設定されています。)

具体的な方法としてはhomeディレクトリの.profileファイルなどで以下のようにlsのエイリアスを設定しておくと良いでしょう。

コマンドプロンプト用に以下の内容のバッチを作って、パスの通る場所(exp.C:\Program Files\Git\cmd)などにls.cmdとして保存しておくのも良いでしょう。

また、Git For Windows 2.xのls.exeをcmd.exe(コマンドプロンプト)から使用すると、以下のようにCJKのファイル名がコード表示になってしまうと言う問題があります。

SnapCrab_NoName_2016-6-9_20-4-29_No-00

これは、以下の要領で管理者権限のあるコマンドプロンプトから環境変数にLANG変数を設定すれば正しく表示されるようになります。(1回だけ実行すれば良いです)

設定後はCJKなファイル名も正しく表示されます。

SnapCrab_NoName_2016-6-9_22-0-53_No-00

Visual Studio Codeをdiff toolとして設定する

Visual Studio Codeはgit difftoolコマンドのツールとして設定できます。他のツールを使用する場合でも同様に設定できます。

これでdifftoolコマンドを実行すると、

SnapCrab_CUsersishisakaAppDataLocalTempLS0Huc_testtxt ↔ CUsersishisakasrcgittesttesttxt - Visual Studio Code_2016-5-4_18-8-39_No-00

と言うようにVS Codeでdiff表示となります。

ただし、git difttoo --dir-diffの使い勝手はだいぶ残念な感じになるので、そこへの期待がある方はWinMergeなり、Tortoise Mergeなり専門ツールを設定される方が良いでしょう。

参照:

winmergeをdiff/mergeツールとする場合には以下が参考になります。

Git Credential Manager(GCM)のインストール

【注意】Git for Windows 2.7.3以降であれば、セットアップ時にGCMのセットアップも行うよう選択できるようになっています。以下は参考のためにそのままにしておきます。【2016/03/16】

GCMを使用するとリモートのリポジトリをhttp/https等でアクセスする際に毎回ログイン処理をしなくて済みます。

またv0.9以降では、Visual Studio Onlineへの多要素認証のサポート、GitHubへのアクセストークンを使用した認証情報の保存などにも対応しています。

以下のGit Credential Manager for Windowsのリリースページから最新のバージョンを選択し、setup.exeをダウンロードして実行してください。

https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases

セットアップ画面は以下のようになっています。(2015/10/19 v0.9 Beta2現在)

SnapCrab_Setup-Git-Credential-Manager-for-Windows_2015-10-19_23-19-53_No-001

SnapCrab_Setup-Git-Credential-Manager-for-Windows_2015-10-19_23-20-4_No-001

SnapCrab_Setup-Git-Credential-Manager-for-Windows_2015-10-19_23-20-14_No-001

Git for Windows 1.9.5までのインストール手順について

以下を参考にしてください。

私家版Git for Windowsインストール手順(1.9.5 Preview向け)

おすすめ

CC BY-SA 4.0 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

「私家版 Git For Windowsのインストール手順」への27件のフィードバック

  1. はじめまして。下記3点エラーがでてPosh-gitをインストールできませんでした。ファイルのエンコード問題かと思ったのですがどうもそれでも通りません。ご助言いただければ幸いです。
    ・” を型 “System.Xml.XmlDocument” に変換できません。エラー: “ルート レベルのデータが無効です。 行 1、位置 1 です。”
    ・null 値の式ではメソッドを呼び出せません。
    ・Module posh-git was not found in central repository

  2. kaidnuさん。管理者権限のあるコンソールでPSGet、posh-gitのインストールを実行されていますでしょうか。

  3. 早速ご助言ありがとうございます。
    いま改めて「PowerShellを、管理者権限」で起動し、掲載のコマンドをコピペで実行しました。
    (使用PCは、Windows7pro x64版です。OS再インストール後なので無駄なものは殆どない筈です)
    ・PS > Get-ExecutionPolicy RemoteSigned
    ・PsGet is installed and ready to use
    までは問題なく進めているようです。 ですが、
    PS > Install-Module posh-git -Startup
    値 “・ソ
    というふうにXMLの最初の部分で文字化けが起こっているのが問題な気がします。なので文字エンコード問題か?と思ってサクラエディタで
    ・発生場所 C:\Users\◆\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1:500 文字:37
    ・発生場所 C:\Users\◆\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1:506 文字:26
    ・発生場所 C:\Users\◆\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1:692 文字:18
    などを見たのですが文字化けしてる箇所が見当たらず、先の質問を上げさせて頂いた次第です。
    私の何か遣り残しがあるか設定ミスの可能性はありますが、改めてご助言いただけると幸甚です。

  4. 前略。エラーの全文を掲げます。(長文失礼)
    ” を型 “System.Xml.XmlDocument” に変換できません。エラー: “ルート レベルのデータが無効です。 行 1、位置 1 です。”
    発生場所 C:\Users\◆\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1:500 文字:37
    + $repoXml = [xml]$repoRaw <<<<
    + CategoryInfo : NotSpecified: (:) []、RuntimeException
    + FullyQualifiedErrorId : RuntimeException

    null 値の式ではメソッドを呼び出せません。
    発生場所 C:\Users\◆\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1:506 文字:26
    + $repoXml.Save <<<< ($CacheEntryFilePath)
    + CategoryInfo : InvalidOperation: (Save:String) []、RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

    Module posh-git was not found in central repository
    発生場所 C:\Users\◆\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1:692 文字:18
    + throw <<<< “Module $Module was not found in central repository”
    + CategoryInfo : OperationStopped: (Module posh-git…tral repository:String) []、RuntimeException
    + FullyQualifiedErrorId : Module posh-git was not found in central repository

    追加情報が欲しいというものがあれば仰ってください。よろしくお願いいたします。

  5. もしかしてUserディレクトの名称が日本語になっていませんか?と言うのと、XMLが文字化けする場合には途中経路のProxy等を疑った方が良いかもしれません。また経験上NTLMな認証PROXYはアイロンなところでトラブルが起きます。

  6. 認証PROXYとディレクトリに漢字が含まれている以外で、posh-gitのインストールに躓いた経験が無いので、あんまりお力になれないかもです。
    posh-gitだけであれば、GitHubからClone(もしくはZIPファイルダウンロードで展開して)してインストールする方法もありますので、ダメそうであれば試してみてはいかがでしょうか。次のサイト等参考になります。

    WindowsでGitを使う時はposh-gitを入れよう – kashew_nuts-blog
    http://kashewnuts.bitbucket.org/2013/11/17/setupposhgit.html

  7. ご助言いただきながら返事が遅くなり申し訳ございません。
    1.Userフォルダは前投稿の◆部分ですが、すべて半角英数です。
    2.全く個人PC上で、Windows7を入れなおした直後で、ローカルです。ドメイン参加はしていません。
    ご紹介いただいたサイトの手順で行ってみましたが動作確認できてないため貴殿サイトも含め確認したいと思っています。
    ほかに前提条件がないようであれば導入は諦めます。有難うございました。

  8. 通りすがりですが、XML先頭の「・ソ」はUTF-8のBOMですね。
    PowerShell2ではBOM付きのUTF-8のXML解析時にエラーが発生するようです。
    私も同様のエラーが発生していましたが、PowerShell 4にアップデートすると正常にインストールできました。

  9. ピンバック: Git | YUKIBE33のブログ
  10. 初めまして。
    記事を参考にGit for WindowsのvGit-2.10.0-64-bitをインストールしたのですが、下記のエラーがでてGit-Bashが使えない状態です。
    WindowsのコマンドプロンプトでGitコマンド自体は使えます。

    エラー
    2 [main] bash (8052) C:\Program Files\Git\usr\bin\bash.exe: *** fatal error – cygheap base mismatch detected – 0x2900400/0x2770400.
    This problem is probably due to using incompatible versions of the cygwin DLL.
    Search for cygwin1.dll using the Windows Start->Find/Search facility
    and delete all but the most recent version. The most recent version should
    reside in x:\cygwin\bin, where ‘x’ is the drive on which you have
    installed the cygwin distribution. Rebooting is also suggested if you
    are unable to find another cygwin DLL.

    ご助言いただければ幸いです。

  11. Cygwinインストール済みでCygwinのbinフォルダへPATHが通っていませんか。もしくはmsys2で同様となっているか。基本的に共存は出来ないと考えていただきたいです。どうしても併用が必要な場合にはそれぞれの環境起動用のバッチなど用意され、その中でそれぞれのPATHを設定し、標準のPATHには含めないようにしてください。「混ぜるな危険!」です。
    とりあえずよくわからなければ、Git for Windowsはアンインストールして、Cygwinなり、Msys2のパッケージマネージャーからGitをインストールしてください。

  12. Cygwinやmsys2はインストールしていないのに、上記のエラーがでてました。
    なので、インストールしたり、逆にアンインストールしたりと試行錯誤しても解決できず、質問した次第です。
    記事と助言を拝見してUNIX互換環境との共存がダメなのかと思い、お試しで入れた「Bash on Ubuntu on Windows」をアンインストールしたら、正常に起動しました。
    いまいち、因果関係は分からないのですが、無事解決できました。
    きっかけになり、感謝しています。
    ありがとうございました。

コメントを残す

No Code, No Life.

%d人のブロガーが「いいね」をつけました。