2016年06月16日
川俣晶の縁側ソフトウェア技術雑記 total 4489 count

Visual Studioでgitに既存のソースツリーを追加する際生成結果のファイルまで登録させない方法

Written By: 川俣 晶連絡先

問題 §

Visual Studio Onlineで作成したgitプロジェクトを作成直後にローカルに複製し、そこに既存のソースツリーをコピーしてコミットしたところ、ソース管理の対象にすべきでは無いpdbやdllなどの生成結果のファイルが大量に追加されてしまった。

新しいソースコードをVisual Studioで生成させた場合は追加されない。

原因 §

プロジェクトのルートに.gitattributesと.gitignoreのファイルが存在しない。追加すべきではないファイルは.gitignoreに書いてある。

解決策その1 §

先に1回Visual Studioで新規プロジェクトを作成する

解決策その2 §

1) 間違って追加したソースを一度全てローカルからもサーバからも削除する

2) 既存の.gitattributesと.gitignoreをコピーしてくる

(追記 Visual Syudioから直接生成できるようだ)

3) もう一度ソースツリーをコピーして改めて追加する

解決策その3 §

くそったれなgitは捨ててTFSに戻る

詳細 §

 .gitattributesと.gitignoreが生成されるタイミングは、Visual Studio Olineで管理gitプロジェクトを作成した段階ではなく、Visual Studioで最初のプロジェクトを作成した段階なので、最初にVisual Studioでプロジェクトを作成したか否かでその後の展開が変化する。

 Visual Studioでプロジェクトを新規作成せずに既存のソースツリーをコピーしてくるとはまる。

残った問題 §

 標準で生成される.gitignoreではApplicationInsights.configやpfxファイルが追加対象にならず、完全元のプロジェクトを復元できない。OSS開発していると見せたくない情報が書いてあるファイルかも知れないが、Visual Studio Onlineで管理するなら他人には見せないのであまり関係ない。