ブログトップ 記事一覧 ログイン 無料ブログ開設

Kazzzの日記 このページをアンテナに追加 RSSフィード

2011-11-11

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

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

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


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

Git Source Control Provider

f:id:Kazzz:20111111191818p:image
Git Source Control Provider - Visual Studio Gallery
Git Source Control Provider - CodePlex

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

 インストールと設定

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

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

f:id:Kazzz:20111111202853p:image

    • 既にリポジトリがある場合

f:id:Kazzz:20111111202324p:image

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

Git Source Control Providerの画面と操作

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

    • Git履歴画面

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

なお、"Git Source Control Provider Options"に追加の情報を設定することでシェル(Git Bash)を呼び出したり、TortoiseGitのコマンドを呼び出すことができるようになる。
f:id:Kazzz:20111111202327p:image
ちなみに"Git Extensions"はTortoiseGitと似たGit操作ツール。私はインストールしていない。

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

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

f:id:Kazzz:20111111202329p:image
上記のメニューから"Show Log"呼び出した結果

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


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

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証