segavvy’s blog

ドラクエ11、Mac、ガジェットetc...

Visual Studio Community 2013で、Gitを使ったソースのローカル管理を始めました

Visual Studio Community 2013(以下「Visual Studio」)でちょっとしたサービスを作り始めましたが、コードが複雑になってくると、1人で書いていても履歴管理のシステムが欲しくなってきます。

職業プログラマ時代はVisual SourceSafeを使っていましたが、最近ならGitでしょうか。でもVisual Studioが連携できるのはTeam Foundation Serverだけでしょうし、どうしたものかなとググってみたら、なんとVisual Studioが普通にGitをサポートしていることが分かりました。

早速やってみましょう。
今作っている「AstoltiaRouteFinder」というプロジェクトを、ローカルのGitリポジトリで管理してみます。

なお、手順はMicrosoftさんのサイトにもありますので、そちらも合わせて参考にしてください。機械翻訳なので分かりにくい所もありますが、チュートリアル的なものは翻訳が遅れがちなので、日本語になっているだけもラッキーです。

開発用コンピューターでの Git のセットアップ (構成、作成、クローン作成、追加)

まず最初にプロジェクトファイル群の配置位置ですが、上記サイトにこんな注意書きがあります。

ソリューションを Git バージョン管理に追加する前に、ソリューションを TFS Git の既定の場所 (c:\Users\YourName\Source\Repos\) に移動しておくことをお勧めします。

TFS(Team Foundation Server)を使う予定は全くないのですが、経験上、詳細がわからない段階で「お勧めします」に逆らうとロクなことがないので、ここは素直に従います。
プロジェクトはVisual Studioが最初に勧めてきたデフォルトの場所(C:\Users\segavvy\Documents\Visual Studio 2013\Projects)に作成していたので、そこから「AstoltiaRouteFinder」フォルダごとコピーします。
本当はコピーではなく移動で良いのですが、何かあって戻らなくなると困るので、まずはコピーして動作確認後に元を消すことをお勧めします。

Visual Studioを起動して、コピー先のプロジェクトを開きます。

開いたら画面右側の「ソシューリョン エクスプローラー」でソリューション名を右クリックして、「ソリューションをソース管理に追加」を選びます。

そうすると、Team Foundation バージョン管理とGitのどちらを使うのか尋ねてきますので、「Git」を選んで「OK」します。

出力の画面に「Git リポジトリが作成されました。」と表示されれば、リポジトリの作成が完了です。簡単!

ただしこの段階ではリポジトリは空っぽですので、現状のソースファイル群をコミットしましょう。
画面右側の「チーム エクスプローラー」から「変更」を選択します。

そうすると「変更をコミットする前に、ユーザー名および電子メールアドレスを構成してください。」というメッセージが出てきます。ユーザー名とメールアドレスを入れないとローカルでもコミットはできないみたいですので、メッセージ中の「構成」を選びます。

ユーザー名とメールアドレスを入力して「更新」を選びます。

コミットのメッセージを尋ねてきますので、入力して「コミット」を選びます。

これで最初のコミットも完了です。
ソース更新後は同じ手順でコミットできます。

「ソリューション エクスプローラー」でソースを右クリックして「履歴の表示」を選べば、履歴が確認できます。

ここで2つ選んで右クリックで「比較」を選ぶと、変更箇所が確認できます。昔のWinDiffと比べるとかなり見やすくなりました。

最後に、一通りプロジェクトの動作確認が終わったら、コピー元の古いプロジェクトファイル群(最初に念のため移動せずにコピーで残していたもの)を削除しておきましょう。下手に残っていると事故の元です。
また削除したら、Visual Studioを起動した直後の画面にある「最近使用したファイル」からもコピー前のものを消しておきましょう。マウスカーソルを持っていくとツールチップでパスが表示されるので、なくなった方を選択します。そうすると、すでにファイルがなくなっているので開けず、次のような画面が出てきます。ここで「はい」を選べば最近使用したファイルから削除されます。

以上です。
MicrosoftさんのOSSに対する姿勢は、ここ5年くらいで相当変わった印象です。Visual StudioOSSとの連携機能もいろいろ充実しているようですね。


入門git

入門git

Gitポケットリファレンス

Gitポケットリファレンス

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)