Visual Studio 2010からGitを操作する(Git Source Control Provider)

Mandarine-wp7ではリポジトリにgitを選択しているが、Visual Studio 2010ではgitは直接サポートされておらず、リポジトリの操作はIDEとは独立して行う必要がある。

    • git bashシェルで操作する
    • git GUIで操作する(一部の操作しか実施できない)
    • TortoiseGitで操作する

※全てMSysGit(http://code.google.com/p/msysgit/)のインストールが必要となる。


まあ、これでも十分なのだがSVNではAnkhSVN素晴らしい拡張があった。 なのでGitもVisual Studio 2010のIDEと連携してリポジトリを操作したい所だ。

Git Source Control Provider


Git Source Control Provider - Visual Studio Gallery
Git Source Control Provider - CodePlex

Git Source Control Providerは以前に紹介したVisual Studio Color Theme Editor と同様「Visual Studio拡張機能」として提供されており、簡単にインストールして使うことができる。

インストールと設定

インストールしてもそのままでは動かない。まずはオプション→Source Controlを開き、「現在のソース管理プラグイン」に"Git Source Control Provider"を選択する必要がある。

これで準備は完了だ。これ以降、プロジェクト又はソリューションでコンテキストメニューを開くと以下のどちらかのメニューが表示されるはず。

あとはgitを知っている開発者であればこの拡張で何ができるのか、何ができないかが判るだろう。

Git Source Control Providerの画面と操作
    • Gitコミット予定一覧画面


コンテキストメニューから「Git - Pending Changes...」を選択するとこの画面が表示される。変更されているがまだリポジトリにはコミットされていないファイルが列挙される。ファイルを一つ選択するとファイルのDiffが右側のペインに表示される。メニューからは「コミット」、「直前のコミットを修正」※、「ブランチの切替え」、「リフレッシュ」を実行できる。

    • Git履歴画面


現在のリビジョン、タグがチャートで表示される。また、この画面でブランチを切替えたり上記コミット一覧画面にジャンプすることもできる。

なお、"Git Source Control Provider Options"に追加の情報を設定することでシェル(Git Bash)を呼び出したり、TortoiseGitのコマンドを呼び出すことができるようになる。

ちなみに"Git Extensions"はTortoiseGitと似たGit操作ツール。私はインストールしていない。

この設定をした後のコンテキストメニューは以下のように変化する。

GitBashシェルを直接呼び出したり、TortoiseGitの機能をここから直接呼び出すことができる。


上記のメニューから"Show Log"呼び出した結果

以上のようにVisual Studio 2010とGitをある程度連携させることができるのが中々に便利だ。(込み入ったことは結局シェルからコマンドを打つことが多いが)また、GitはSVNのようにリモートの情報をキャッシュしておく必要が無いので全体的に動作が軽いのも良い所だと思う。


※"Amend commit"であり下手に使うとリモートのリポジトリとの同期が崩れPush/Pullが出来なくなるため、注意が必要だ。