RTVSでgit管理
特にRTVSだけの話ではありませんが、Visual Studioでのプロジェクトファイルをgit管理できます。
多数の記事があり、ここで書くまでもないので、こちらにオフィシャルなガイダンスを挙げておきます(こちらの例はTFSのgitリポジトリですが。):
Get Started with Git and Team Services
本家gitのサイトにもVSからgitを使うことに関するエントリがあります(2013で止まっている!)
A1.2 Appendix A: その他の環境でのGit - Visual StudioでGitを使う
基本的には以下のオフィシャルのExtensionを入れることになります。
GitHub Extension for Visual Studio
最初の頃のバージョンは、最低限の機能しかありませんでしたが、最近のバージョンではほとんどのgit操作がGUI経由でできるようになっているようです。
RTVSでの.gitignore
RTVSでgitを使うのは非常に簡単で、通常のプロジェクトと同じように使えます。Rの場合は*.rソース以外にほとんど設定ファイル、中間ファイルを必要としないので、あまり拘ることはありません。
ですが、どうもRTVSを使い始めて、気になるのが、.Rhistoryなどのgitignoreがデフォルトではなされていないようなのです。Visual Studioの.historyはプロジェクトフォルダに展開されませんが、同じプロジェクトをRstudioで開いたりすると、.historyファイルが作られます。
gitignoreについて、推奨のリストがRTVSでも提供されていますが、デフォルトでは適用されないようです。
RTVS/.gitignore
こちらに、MS公式ドキュメントとして推奨されています:
RTVS documents
Q.RTVS プロジェクトで推奨される .gitignore の設定はどのようなものですか?
A: Github に、.gitignore の推奨ファイルのマスター リポジトリが用意されています。 R .gitignore をご覧ください。
以下のようにgithubにイシューが上がっているにも関わらず、VS2017用の正式リリースに至っても、まだ対応されていないように見えます:
Consider adding R-specific .gitignore file #1153
ちょっとガッカリ対応ですが、まあしばらく手動で対応し、気長に待ちましょう。
すでに登録されてしまった、.Rhistoryを外す
.gitignoreを設定した後、ソリューションエクスプローラから.Rhistoryを選択し、削除します。これでgit管理からの削除も行われます。
変更ビュー(またはコミットの詳細)からは、以下のように対象ファイルがリポジトリから削除される事が認識されています。
その後再び.Rhitoryファイルが作成されても、以下のようにgit管理からは外れていることがわかります。
基本的には上記の操作で以下のコマンドが発行されているようです。参考:Visual Studio で git のファイルを消す-kazuakix の日記
git rm filename
また、上記の場合は、ローカルのファイルも削除されてしまうので、git管理下から外したいだけの時は、以下のようにオプションを付けます。(もっとも.Rhistoryを残したいというシーンはあまりないと思いますが)
git rm --cached filename
とすると、ソリューションエクスプローラ上では以下のようにファイルは存在するが、次回のコミットでリポジトリからは削除される旨のxマークがつくので、所望の動きであることが確認できました。
これをコミットすると以下のように無視されているというマークがつきます。きめ細かいですね。
あとは、心おきなく、REPLやデバッガで実験しまくっても、不要なコミットをしなくてよくなりますね。