Visual StudioでGitを使用できるようになるまで

まず用意する物

リンク先のそれぞれのサイトから最新の物をダウンロードします。

まずCygwinでGitを入れるか、msysGitを入れるかという二択が存在するわけですが、Visual Studioでの使用という点ではmsysGitのみが選択肢になります。

また、msysGitのパッケージがGit For WindowsとmsysGitに分かれていますが、後者のmsysGitはソースコードやMinGW(gcc)の開発環境を含んだパッケージで、Gitの開発に興味が無い人にはインストールする必要はありません。Gitのバイナリ自体は同じものなので、Gitを使用するだけならGit For Windowsを選んでください。

TortoiseGitとGit Extensionsは好みでどちらか、もしくは両方をダウンロードします。

環境変数の設定

gitとしての環境変数もありますが、まだ設定していない場合には環境変数’home”を指定してください。場所としては自分のユーザーフォルダ(C:\users\<username>)か、もしくは適当なフォルダを指定してください。Gitが.gitconfigというユーザー毎のグローバルな設定の設定ファイルを環境変数homeのフォルダに作成します。

Git for Windowsのインストール

Git for Windowsをインストールします。

Git for Windowsのインストール方法やsshの設定については以下の記事を参考にして下さい。

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

SSHのクライアントは標準のOpenSSHにします。

 Gitのグローバルな設定

Gitのグローバル設定を行い、ユーザー名やメールアドレスなどを登録してください。

Gitのコマンドを使用した具体的な設定の仕方は書籍や他サイトを参考にしてください。
参考:msysGitのインストール – 降っても晴れても

また、これらのグローバルの設定はGit Extensonsをインストール後、Git ExtensionsのGUIから設定可能です。(以下はその場合の設定例)

Git Extensionsでの設定

TortoiseGitではGuiから設定できる内容は少ないですが、必要最低限度の設定は行えます。

エディタの設定ほか

ネットの情報の多くではnkfの設定があるが、msysGit 1.7.10以降であれば、git、lessとも漢字の表示に対応しているので、pagerをless以外に変更したいので無い限り設定する必要が無い。(2012/04/10)

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

editor = \"C:/Program Files/Hidemaru/Hidemaru.exe\" //fu8

もしGitリポジトリをWindows以外で使わず、コミットログ等の文字コードをShift JISとしたい場合には、以下のようにGlobalの設定を変更します。その場合、上のpagerとeditorの変更は不要です。(エディタは好みの物に変えたいと思いますが。)

以下の設定は個人的にはあまりお勧めしません。

$ git config --global i18n.commitEncoding sjis

バージョン1.7.10以降使用時の追加設定事項

バージョン1.7.10以降使用時には以下のようにエスケープ表示をキャンセルします。


$ git config --global core.quotepath false

TortoiseGit, Git Extensionsのインストール

まず、.gitconfigのバックアップを行ってください。

特に難しいところはないので、インストールウイザードに沿ってインストールしてください。どちらもシェルエクステンションを追加する関係で再起動が必要になります。

注意点としては、Git ExtensionsのインストールウイザードではmsysGitを一緒にインストールしようとしますが、すでにインストール済みなので、忘れずのチェックを入れます。また、Git Extensionsをインストールするとeditorの設定等が書き換えられるので、バックアップしたファイルとの間でマージしてください。

くどいですが、どちらかで良いです。(両方でも良いです)すでにTortoiseSVNやTourtoiseHgの使用経験があるのであればTortoiseGitの使用をお勧めします。

以上でWindows上でExplorerに統合された形でGitを使用する体制が整いました。

追補(2012/06/01)

TortoiseGit 1.7.9以降ではUTF-8がサポートされたので、msysGit 1.7.10以降との組み合わせであればUTF-8がサポートされているので、漢字のファイル名などには対応できている。

Git Source Control Providerのインストール

Visual Studioのソースコントロールの仕組みに即した形でGitを使用するためにGit Source Control Provider(GSCP)をインストールします。

上にリンクされているCodePlexのサイトからダウンロードするか、Visual Studio 2010/2012の拡張機能マネージャを起動し、Gitで検索をかけると検索結果にこれが含まれるので、そこからインストールします。

インストール後はまず、以下のようにGit Source Control Providerをソース管理のプラグインとして指定します。

とりあえずこれで終了ですが、Diff表示に使用するツールは標準のdiffmerge.exeから別の物に変えた方が使い勝手が良いと思いますので、変更する方が良いと思います。

下図の設定では、Visualization 2012が内蔵しているDiff Windowsを使用する設定となっています。

以上でVisual StudioよりGitを使用する準備が整いました。

Git Source Control Providerの設定方法、使用方法については以下のBlog記事を参考にしてください。

Git Source Control Providerの使い方

追補:日本語入力(2013/09/17)

Git for Windows Version 1.8.4以降に添付されているbashがUNICODEの表示入力に対応したので、標準でインストールされるbashのコンソールで問題なく日本語の入力・表示が可能となりました。

git unicode

そのほかの設定

lsでの文字化け対策

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

基本的にはlsのコマンドオプションである”–show-control-chars”オプションを指定しするだけです。

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

alias ls='ls --color=auto --show-control-chars'
alias ll='ls --color=auto --show-control-chars -l'

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

ls.exe --color=auto --show-control-chars %*

環境変数の追加

環境変数にTERMを追加し、値をmsysに設定します。
バッチファイルで設定する場合には以下のようにします。

@SET TERM=msys

この設定をしておくと、コマンドプロンプトでlessを使用したときにエラーメッセージが出なくなります。

push時の標準設定について(2013/06/06)

Git Ver. 1.8.0から、git pushとrefを指定しないでpushしたときに以下のようなメッセージが出るようになったと思います。

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

これは、Git Ver. 2.0以降でrefを指定せず、現在のブランチが追跡ブランチでは無い場合のpushの標準動作が変更になることが予定されているため、その警告と現在の標準設定のままにしたい場合の設定方法が書かれています。

refを指定しな場合のpushの標準動作設定には以下の設定が有り、2.0以前の標準設定はmatchingです。

matching

この設定では現在いるブランチ以外のブランチもあわせてアップストリームにpushします。アップストリームに同名のブランチがあれば同名のブランチにpushします。また、ローカルにあって、アップストリームに無いブランチがあったら、そのブランチはpushされません。
意図したブランチはpushされずに、意図しないブランチをpushされてしまう危険性があり、一番危険なオプションです。

simple

今いるブランチがアップストリームにあれば、今のブランチだけをpushします。アップストリームにブランチが無ければpushしません。目の前で把握できるものだけがアップストリームにpushされるので、比較的安全です。

current

今いるブランチだけがアップストリームにpushされます、simpleとの違いはアップストリームにそのブランチが無くてもpush出来ます。

upstream

ローカルブランチとアップストリームにあるリモートブランチとの間で追跡関係がある場合だけ今のブランチがpushされます。ちょうどpullの挙動の逆になります。
追跡関係を持った追跡ブランチを作成する方法はここの追跡ブランチ項を確認して下さい。

基本的には以下のように2.0以降の仕様にあわせておいた方が良いと思います。

git config --global push.default simple

今まで通りが良いなら以下のようにします。

git config --global push.default matching

基本的にはrefはちゃんと設定しましょう。

Visual Studio Tools for Git Extensionsについて

現在Visual Studio 2012にはVisual Studio拡張として、Visual Studio 2013には標準的にVisual Studio Tools for Git extensionsがリリースされています。

正式リリース前のCTP段階でのVisual Studio Tools for Git(VSTG)ですが、そのインストールと使用方法を以下のリンク先にまとめましたので、参考にして下さい。(基本的な動作や機能は現在の正式リリースでもあまり変わっていません。)

個人的な感想としては、VSTGは、ステージングが無視されている、リモートリポジトリの登録が一カ所に限定されている、リモートの取り扱いがおかしいなどGitの流儀に合っていないところが多く、あくまでもGitリポジトリをサポートしたTFSのクライアントだと考えています。従って、GitHubのようなGitのオンラインサービスやローカルでGitをメインのリポジトリとして使用している様な環境には向いていないと思いますので、TFSを使われないのであればGit Source Control Provider(GSCP)の使用を強くお勧めします。

使用方法については、以下のMSDNライブラリの記載を確認してください。また、参考のため、私の書いたPreviewの使用記へのリンクも乗せておきます。

Visual Studio での Git の使用@MSDNライブラリ

Visual Studio Tools for Git (Preview)のインストールと使い方

Visual Studio Tools for Git (Preview)のインストールと使い方その2

9 thoughts on “Visual StudioでGitを使用できるようになるまで”

  1. VSTGに関してMSDNライブラリの記載がちゃんと翻訳されていたのでリンクを追加。ヤッパリ使いたくない。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

No Code, No Life.

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