Visual Studio Advent Calendar 3日目です。Keiji KAMEBUCHI さんからの引き継ぎです。
今回はVisual Studioのソリューション・プロジェクトをGitを使ってバージョン管理をするためのGit Source Control ProviderであるGit Source Control Provider(gitscc)の使用方法についてまとめます。
Git Source Control Provider(Codeplex)
Source Control Providerとは
Source Control ProviderはVisual Studioに於いて、ソースコードのバージョン管理をする仕組みを提供するアドインやVS拡張のことです。
基本的にVisual Studioに対して共通のインターフェイスをもとに、リポジトリからのチェックアウト、コミット、差分比較の機能などを提供する機能です。
Source Control Providerは大きく2つの種類に分けることができます。一つ目はVSのもつ標準的なUIを使用し、バージョンコントロールの役割に徹するSource Control Pluginで、もうう一つのほうがVS 2005移行に登場したSource Control VSPackageという仕組みで、TFS(恐らく)やgitsccはこちらの形式で作成されています。こちらはカスタムのUIを作成できる他、ファイルの種類に合わせてコンテキストメニューの内容を変更できたりなど、より密接にVSに統合することができます。
参考:Source Control Integration Overview
Git Source Control Providerの入手とインストール
CodeplexからGitSccProvider.vsixファイルを入手し、ダブルクリックでインストールすることもできますし、VSのツールメニューにある拡張機能と更新プログラムからインストールすることができます。
また、gitsccを使用するには事前にGit For Windowsの入手と最低限のセットアップが必要です。
Git for Windowsの入手やインストール作業の詳細については、このblogのVisual StudioでGitを使用できるようになるまでを参考にしてください。
またCygwin版のGitは使用できません。
gitsccの設定
GitをWindowsで使用できるようになるまで準備ができ、gitsccのインストールも終了したら、gitsccの設定を行います。
gitsccの設定は、ツールメニューからオプションを選択し、下図の位置でGit Source Control Providerを選択します。
次に詳細設定を行うためにGit Source Control Provider Optionsを選択します。
設定項目
Path to Git for Windows | git.exeまでのパスを指定します。デフォルトでは標準的なインストール先のパスが指定されているので、msysGitなどをインストールしている場合には変更します。 |
Path to Git Extensions | Git Extensionsのパスを指定します。デフォルトでは標準的なインストール先のパスが指定されているので、インストール時にインストール先を変更している場合には変更します。 |
Do not expand Git Extensions commands | gitsccではVSからGit Extensionsのコマンド(ツール)を呼び出せるのですが、それを使用したくない場合には、ここにチェックを入れます。 |
Path to TortoiseGit | TortoiseGitのパスを指定します。デフォルトでは標準的なインストール先のパスが指定されているので、インストール時にインストール先を変更している場合には変更します。 |
Do not expand TortoiseGit commands | gitsccではVSからTortoiseGitのコマンド(ツール)を呼び出せるのですが、それを使用したくない場合には、ここにチェックを入れます。 |
Use Visual Studio 2012 Diff Window | Visual Studio 2012専用ですが、Visual Studio 2012が内蔵するDiff Windowsを差分表示に使用したい場合には、ここにチェックを入れます。 |
Path to external diff tool(optional, by default diffmerge.exe is used) | サードパーティーのDiff/Mergeツール(WinMergeなど)を使用する場合に、それへのパスを設定します。また、ここで設定されたツールに対して、第1引数に比較対象のファイルのパス(変更前のソース)、第2引数に現在のファイルが渡されます。 |
Use TortoiseGit Style icon set | ソリューションエクスプローラーで編集されていたり、追加であったり、編集されたことを示すファイルに付く小さなアイコンを、VS標準のものから、TortoiseGitと同じようなものに変更します。 |
Disable auto-refresh | このチェックを入れるとソースコードの変更ステータスを自動的に更新しなくなります。(対象を右クリックしてGit Refreshの選択が必要になる。参照:http://gitscc.codeplex.com/wikipage?title=Auto%20Refresh&referringTitle=Documentation) |
Disable auto switch to this plug-in for Git controlled projects | すでにGit管理下にあるプロジェクトを開いた時に自動的にこのプラグインにスイッチさせたくない場合にはこれをチェックします。 |
Disable UTF-8 file names(Git 1.7.10+) | gitsccは標準では非ASCIIな文字が使用されているファイル名をUTF-8に変換し、エスケープ表記にしたファイル名でGitのレポジトリに保存しますが、このチェックを入れるとその変換を行いません。Git for Windows 1.7.10でUNICODEファイル名対応したことを受けての処理ですが、それ以降でも日本語のファイル名を使用する場合Git for Windows 1.7.10移行の環境でもチェックがあると正しく動作できないので、チェック入れないでください。 |
使用方法
リポジトリの作成方法
ソリューションを単位として、Gitのレポジトリをそのディレクトリに作成することができます。
ソリューションかそれ以下のファイルを選択し、右クリックしてコンテキストメニューを表示させます。表示させたら星印のアイコンのCreate Git Repositoryを選択します。
レポジトリが追加されると、ソリューションエクスプローラの表示が以下のように変更となります。
ステージング(add)
レポジトリができたので、ファイルをステージングします。
ファイルのステージングを行うには、下図のようにソリューションエクスプローラで対象を右クリックして下図のようにGit pandind Changesを選択し、Pending Changesウインドウを表示させます。
Changed filesの中からステージングしたいファイルを選択し(チェックではなくリスト選択)、コンテキストメニューからStagingを選択します。
右側のDiffには前回コミットからの差分内容(Diffコマンド結果)が表示されます。
ステージンが正しく実行されると下図のようにStatusがNewからAddedに変更します。
ここまでをコマンドラインで確認すると以下のようになります。同じようにProgram.csだけがステージングされています。
コミット
ステージンが完了したら、ファイルにリポジトリをコニットしましょう。
また、gtsccのGit Pending Changesウインドウを使用する場合、ステージングなしで、いきなりコミットすることも可能です。
コミットを行うには、まずコミット対象となるファイルにチェックを入れます。表示されているもの全部を選択する場合には、リストのヘッダにあるチェックボックスにチェックを入れます。そして、Commentsにコミットコメントを記入する。日本語の入力も可能です。
一番上のCommitをクリックして、コミットを実行します。
コミット後のコンソールでのステータス表示です。先ほどステージングされていないファイルを含めてコミットされたのが確認できます。
ついでにログも見てみましょう。日本語のコメントも大丈夫ですね。
ログ、Brame、ブランチ
gitsccにもログ(ヒストリ)表示機能があります。
ソリューションエクスプローラーのコンテキストメニューからGit Historyを選択します。
以下の様なウインドウが画面いっぱいに表示されます。ウインドウ上部をクリックし、そのままドラッグするとウインドウサイズを全画面から解除できます。
コミット単位で上のような箱が表示され、その中にコミットコメントが表示されます。また、箱をクリックすることで、コミットの詳細を確認することができます。
参考:http://gitscc.codeplex.com/wikipage?title=View%20History&referringTitle=Documentation
ブランチを作成してチェックアウトを行うにはGit Historyウインドウから操作する方法があります。
ブランチのもととなるコミットを右クリックし、New Branchを選択します。
git branchというダイアログが表示されるので、ブランチ名を入力し、OKをクリックします。
ブランチが追加されました。
追加したブランチに変更(checkout)したい場合には、チェックアウト先のブランチカラコンテキストメニューを選択しcheckoutを選択します。
これでチェックアウトされました。また、現在どのブランチで作業しているかはソリューションエクスプローラーのコンテキストメニューから確認することができます。(下図赤枠内)
コンソールでも確認してみましょう。
ここからソースコードを編集し、コミットするとGit Historyの表示は以下のようになります。
Brameを表示させるにはBrameのチェックボックスにチェックを入れます。
また、ブランチの作成や切り替えの別の方法として、Git Pending Changesウインドウから行う方法があります。
下図赤枠のSwitch Branchをクリックします。
次のようなウインドウが表示されるので、切り替えたいブランチを選択するか、Create a branchを選んでブランチを作成して切り替えます。(chckoutコマンドの-bオプション)
他のGitツールとの共同作業
gitsccにはpullやpushやcloneなどの機能がありません。これらのgitsccが持っていない機能についてはGitBash、Git ExtensionsやtortoisGitの機能を呼び出すことで、VSからそれらの機能を使用することができます。
ソリューションエクスプローラーの右クリックからGitを選択すると、その下位メニューとしてそれが選択できるようになっています。
例えば、Git Bashを選択すると、Bashのコンソールが起動します。コンソールではソリューションのディレクトリがpwdになっているはずです。
まとめ
だいたい使い方はお分かり頂けたでしょうか。基本的な操作はgitsccから可能ですし、それ以上の操作(他のレポジトリとのやり取りなど)については、Git Bashを起動してGitのコマンドを叩いてしまうか、Git ExtensionsたtortoiseGitのコマンドを呼び出してしまえば操作が可能です。
明日
あすはりばてぃさんの当番です。それではりばてぃさんハリキッテどうぞ!!
コメント
RT @ishisaka: Git Source Control Providerの使い方… http://t.co/Np0XnOFV Visual Studio Advent Calendar 2012 3日目
Yasuharu Oishi liked this on Facebook.
Akira Inoue liked this on Facebook.
[…] ☆Git Source Control Providerの使い方 Git勉強中なのでメモ […]