前の関連記事:Git(12)PyCharmからGistへ簡単アップロード
ファイル→新規作成→Webサイト、テンプレート→Visual Basic→ASP.NET 空のWebサイト、で作ったWebサイトの中のファイルの変更履歴を記録したいのでGitを使うことにします。Visual Studio 2013にはデフォルトでGit機能がついています。
(最初はどうやるのかわからなかったのでまずTortoiseGitでローカルリポジトリを作ってからVisual Studioに取り込みましたが、この記事の最後にやっている「ソリューションファイルをWebサイトと同じフォルダに移動させる」をしてから、編集後のslnファイルを開いてそれをVisual Studioから開いてファイル→ソース管理に追加、とするのが一番簡単だと思います。Git(14)Visual Studio Community 2013のWebサイトでGitを使う2参照。)
Webサイトはソリューションフォルダの外にあるのでVisual StudioからGitリポジトリにできない?
ソリューションエクスプローラーでみると作成したWebサイトはソリューションに含まれています。
ソリューションファイルslnはProjectsフォルダ内の(ソリューションの名前ではなく、、、ややこしい、、、)プロジェクト名のフォルダの中にあります。
通常のアプリケーションのテンプレートを選択した場合はこのslnファイルと同じプロジェクト名のフォルダ内にプロジェクトフォルダが作成されます。
その場合は問題ないのですが、Webサイトのテンプレートを選択した場合は、ソリューションエクスプローラーでは普通のアプリケーションと同じくslnファイルと同じフォルダ内にWebサイトフォルダがあるようにみえますが、実際は違う場所にあります。
なので、ソリューションエクスプローラーでソリューション名を右クリックして、ソリューションをソース管理に追加、としてもWebサイトの内容はソース管理に含まれません。
デフォルトのテンプレートを選択して作ったプロジェクトなのに、どうしろと、、、
Documents\Visual Studio 2013\Projects\WebSite1フォルダにはJScript.slnとgit関連のファイルしかありません。
実際にソースファイルがあるDocuments\Visual Studio 2013\WebSites\WebSite1フォルダにはgit関連のファイルがみあたりません。
Visual Studioからの操作でソリューションフォルダの外にあるWebサイトフォルダをGitリポジトリにする方法はわかりませんでした。
ということでまずはVisual Studioを使わずにこのWebサイトフォルダをGitのリポジトリにしてからVisual Studioの管理下にします。
まずTortoiseGitでWebサイトのフォルダをローカルリポジトリにする
Visual Studioからはソリューションフォルダ外のフォルダをGitリポジトリにできないのでまずはTortoiseGitを使ってGitリポジトリにします。
TortoiseGitの設定はGit(1)Git for Windows(msysgit)のアンイストールとインストールとGit(2)TortoiseGitでGitの設定を行うで行ったものです。
その後バージョンアップしてgit version 1.9.5.msysgit.1とTortoiseGit 1.8.13.0になっています。
このTortoiseGitを使ってGit(3)既存のフォルダからローカルリポジトリとリモートリポジトリを作成の通りにDocuments\Visual Studio 2013\WebSites\WebSite1フォルダをGitリポジトリにします。
Gitコミット→"master"、で変更履歴を残したいファイル(今回はjsファイル)をチェックしてコミットしました。
これでWebサイトフォルダがGitのローカルリポジトリになりました。
作成したローカルリポジトリをVisual Studioのチームエクスプローラーに取り込む
Visual Studioのメニューから表示→チームエクスプローラー。
チームプロジェクトへの接続。
これから登録するWebサイトのローカルリポジトリと同名になるので削除したいのですが、リポジトリが一つだけしか表示されていないときは削除できないようなのであとで削除します。
「ローカルGitリポジトリ」の下にあるメニューの「追加」をクリックしてWebサイトのフォルダを追加します。
ソリューションフォルダのリポジトリと全く同名でWebフォルダのリポジトリが登録されました。
元からあるソリューションフォルダのリポジトリを削除したいときは、新たに登録したWebフォルダのリポジトリの方をダブルクリックしてチームエクスプローラーのホーム画面にしたあと、また接続画面に戻るとダブルクリックしなかった方を削除できるようになります。
Webサイトにはソリューションファイルslnが含まれていないので、チームエクスプローラーのホーム画面のソリューションの欄には何も表示されません。
ホーム画面から「分岐」をクリックして分岐画面で「発行されていない分岐」の「master」を右クリックして「履歴の表示」を選択すると履歴が見れます。
見たいコミットをダブルクリックするとチームエクスローラー画面にコミットの詳細が表示されます。
ファイルをダブルクリックするとその内容が見れます。
ソリューションフォルダとは関係無しに開いているのでソリューションエクスプローラーではWebフォルダの内容は表示されません。
コミットはホーム画面から「変更」をクリックして、コミットメッセージを入力すると「コミット」ボタンが押せるようになりコミットできます。
これでWebサイトフォルダの内容をGit管理できるようになりましたが、ソリューションファイルが同じリポジトリにないので操作が一元的にできないのでとても不便です。
ソリューションファイルをWebサイトと同じフォルダに移動させる
単純にソリューションフォルダにあるソリューションファイルをWebサイトと同じフォルダに移動させるだけです。
ソリューションファイルの内容をちょっと編集しないといけません。
移動させたslnファイルをワードパッドで開いて「..\..\WebSites\WebSite1\」を「.」で置換しました。
Debug.AspNetCompiler.PhysicalPath = "."
Release.AspNetCompiler.PhysicalPath = "."
SlnRelativePath = "."
この3箇所が置換されました。
Visual Studioでこの編集後slnファイルを開いてソリューションエクスプローラーをみるとちゃんと動作しており一元的にGitが使えるようになりました。
ツールバーからFirefoxを起動するとちゃんとlocalhostでWebサーバーが立ち上がりました。
同名でややこしいのでプロジェクトフォルダ内の不要になったソリューションフォルダは丸ごと削除してしまいました。
まだ使い込んでいないのでテンプレートの構成と変えたこの状態では何か不都合が発生するかもしれません。
参考にしたサイト
開発用コンピューターでの Git のセットアップ (構成、作成、クローン作成、追加)
公式ヘルプ。あまり参考になりませんでした。
0 件のコメント:
コメントを投稿