情報源: Visual Studio 2015 Update 2 | Release Notes
Update 2ではGit LFSの対応、ステージング、チェリーピックの対応、リセットコマンドの強化がGitに関する機能の追加点で、LFS以外の点についてみていきます。
またLFSですが、現CTPの段階では特にどのファイルをLFSの対象にするのか、LFSを使用するのかしないのかと言った設定はGUIとしては無いようです。
ステージング
VS2013にGit機能(VSTG)が追加された段階から多くの人が注文を付けてきたステージングが実装されました。
以上のようにチームエクスプローラの変更タブで、「変更」の項目にあるファイルをダブルクリックするか、コンテキストメニューから「ステージ」を選択します。
上図にある「段階的な変更」にファイルが移動します。ここは「ステージ」にして欲しかったところ。VSTGはこうやってGitに無い独自用語を使うので混乱します。
「コミットしてステージング」が従来の「コミット」ボタンで、ステージにあるものも、ステージには無いが変更されたファイルも含めてコミットします。いわゆるcommit -aです。実際の動作を考えると「コミットしてステージング」ではなく、「ステージングして、コミット」が正しいボタン名称でしょう。
「コミットしてステージング」右のプルダウンからステージ図にあるファイルのみを対象にコミットできます。
ステージング自体については以下のPro Gitの記事を参考にしてください。
チェリーピック
チェリーピックも当初から要望があった機能ですが、これも追加されました。
チームエクスプローラのブランチタブで、チェリーピックしたい対象のブランチを選択し、コンテキストメニューを開いて、チェリーピックを選択します。
この場合チェリーピックの対象となるのは選択したブランチのヘッドが選択され、コンフリクトが無ければ即時全てのファイルがマージされます。
この後でコンフリクトがある場合には、コンフリクト解決するよう表示されるので、どちらのファイルを使うか選択するか、ファイルを編集してコンフリクトを解決します。
また、上の図のようにブランチのログ(履歴)を表示して、特定のコミットをチェリーピックの対象に選択することが出来ます。
チェリーピック自体については以下のPro Gitの木々を参照してください。
変更のリセット
これは無理に翻訳しすぎでわかりませんね。
ブランチを対象にした(右クリックした)リセットの動作はgit reset HEAD
の動作になります。
「変更をリセットして削除(物理的)」がgit rest --hard
です。これはワークツリーまで含めて最終のコミットに戻します。「変更をリセットして保持(–混合)」がgit rest --mixed
もしくはresetコマンドのオプションなしなので、インデックスの内容を戻します。()内には無理に翻訳せずにGit resetコマンドのオプションをそのまま書いた方がわかりやすいと思います。
特定のコミットを対象にリセットしたい場合には、ブランチのログを表示して、コミットを選択、コンテキストメニューからリセットを選択します。
HEAD^を選択したいことも多いと思いますが、その時ちょっとめんどくさいかなと思います。あと、–soft欲しいときもあるよね。
まとめ
マージで–no-ffオプションなどの指定ができないかなとかリベース周りの改善とかまだ改善してほしいところも多いと思いますし、CLIのgitがまだまだ必要ですが、正直なところだいぶ良くなりました。
あとは意識的に行っているであろうTFVC(TFS)との用語の混合・混濁が改善されると、TFVCをいままで使ってこずにGitを使い込んできた人も面食らわずにVSTGを使えるかなと思います。