Visual Studio で作業していると、中断されたり、現在の変更を失うことなくブランチを切り替えたりする必要がある場合があります。スタッシュはちょっと変わった機能ですが、非常に便利です。コミットされていない変更を一時的に保存しておき、タスクを切り替えて後でその変更を元に戻せるようにしてくれるのです。なぜそうなるのかはよく分かりませんが、正しく行わないと作業内容が失われたり、ブランチが台無しになったりする可能性があります。設定によっては、特に異なる Git クライアントを使用している場合や統合ツールに不具合がある場合、スタッシュコマンドが失敗したり、スタックしたりすることがあります。そのため、簡単にスタッシュして、必要なときに取得する方法を知っておくことは非常に重要です。このガイドでは、実際の手順を詳しく説明します。完璧ではありませんが、目的は達成できます。
Visual Studio で変更を保存する方法
Visual Studio で変更を保存する方法
お使いのVisual StudioのバージョンでGit機能が有効になっている場合は、未保存の作業内容を安心して保存できます。ここでは、特に新しいバージョンではほとんどの場合に機能する一般的な方法をご紹介します。
- 現在作業中のプロジェクトを Visual Studio で開きます。
- 「表示」>「Gitリポジトリ」メニューに移動します。表示されない場合は、Git拡張機能を有効にするか、インストールを確認する必要がある可能性があります。
- Gitリポジトリウィンドウで、「Stash」セクションをクリックします。表示されていない場合は、Stashアイコンまたはメニューオプションを探してください。ドロップダウンの下に隠れている場合もあります。
- 「Stash」>「Stash All」オプションをクリックします。保存したメッセージを入力するダイアログが表示されます。後で何を保存したか思い出せるように、わかりやすいメッセージを入力してください。
- 「WIP: 認証ロジックのリファクタリング」など、現在取り組んでいる内容を入力して、Stashを押します。
なぜこれが役立つのでしょうか?それは、現在の変更を中立的な場所に保存するため、作業ディレクトリがクリーンアップされ、ブランチを切り替えたり更新をプルしたりする際に不安を感じることなく作業できるからです。stash がセクションにリストされ、ファイルが(おおよそ)以前のコミット状態に戻っているのが確認できます。ただし、一部のマシンではこの手順が不安定になったり、すぐに反応しなかったりする場合があることに注意してください。そのような場合は、Visual Studio の再起動が必要になる場合があります。
Visual Studio でスタッシュを適用する方法
必要な作業が完了し、変更を元に戻す準備ができたら、いつもの魔法のトリックを実行します。
- Git リポジトリウィンドウを再度開きます。
- リストで自分のスタッシュを見つけます。前に追加したメッセージが表示されます。
- スタッシュエントリを右クリックします。「適用」または「適用して削除」などのオプションが表示されます。前者はスタッシュを適用しますが、後で再適用する場合に備えて保持します。後者はスタッシュを適用しますが、適用後にスタッシュを削除します(確実に適用した場合)。
- 「適用」を選択します。変更が作業ディレクトリに戻ります。
なぜそうするのでしょうか?それは、不完全な作業をコミットしたり、変更点を適当に選んだりするよりも安全で速いからです。ファイルは保存された状態で更新されますが、コードが分岐している場合は競合が発生する可能性があることに注意してください。その場合は、マージ競合が発生し、手動で解決する必要があります。環境によっては、適用後にすべてが正常であることを確認するために、コンパイルまたはテストを実行する必要があるかもしれません。
保存された変更を表示または削除する方法
複数のスタッシュを管理するのは、特に頻繁にスタッシュする場合、混乱を招く可能性があります。最も簡単な方法は、Gitリポジトリウィンドウを使用することです。
- 表示 > Git リポジトリを開きます。
- 「Stashes」セクションを展開すると、保存されているすべての stash のリストが表示されます。
- 任意のスタッシュを右クリックすると、適用、表示、削除が行えます。ちょっと確認したい場合は、表示を選択すると差分プレビューが表示されます。古いスタッシュを整理したり、削除したりするには、削除するだけです。
これらの保存をどのように処理するかを知っておくと、リポジトリを整理するのに役立ちます。バージョンによってはインターフェースがスムーズではなく、スタッシュリストがすぐに更新されない場合があります。しばらくお待ちいただくか、必要に応じてVisual Studioを再起動してください。また、デフォルトのUIがわかりにくい場合は、オプションで表示言語を変更することもできます。
Visual Studio で Git Stash を使用する理由
- ブランチを切り替えたり、新しいコミットをプルしたりするときに、未完了の作業を安全に保ちます。
- 特にクイックフィックスブランチでのマージ競合の削減に役立ちます。
- 部分的なコードをコミットせずに、タスクを一時停止して後で再開できます。
よくある質問
はい、スタッシュを作成するときに「未追跡ファイルを含める」というボックスにチェックを入れてください。時々、このオプションを忘れて、なぜ新しいファイルが保存されないのか不思議に思うことがあります。
ローカル、つまりGitリポジトリの隠しディレクトリ.git内にあります。リモートリポジトリには保存されません。そのため、ローカルリポジトリを削除しない限り、これらのファイルは安全です。
そうですね、スタッシュするときは明確なメッセージを表示してください。数字だけでなく、それぞれのスタッシュの目的を思い出すのに役立ちます。
もちろんです。Gitリポジトリビューで「Stashes」を展開し、任意のstashをダブルクリックしてください。中身の差分プレビューが表示されます。適用前に確認したいときに便利です。
まとめ
Visual Studio のスタッシュ機能は完璧ではありませんが、未完了の作業をコミットしたり、ブランチを切り替える際に進捗状況を失ったりする手間を省くための、かなり手軽な解決策です。組み込みツールはほとんどの場合問題なく動作し、スタッシュの表示、適用、削除方法を知っておくことで、柔軟な運用が可能になります。ただし、UI に不具合が発生する場合があり、問題が発生した場合は再起動またはアップデートが必要になる場合があることに注意してください。それでも、誤って上書きしたりマージに失敗したりして何時間もの作業を失うよりはましです。
まとめ
- Git リポジトリ ウィンドウを使用して、説明的なメッセージとともに変更を保存します。
- 後で右クリック オプションを使用してスタッシュを適用します。潜在的な競合に備えてください。
- 整理された状態を保つために、古い保管物を管理および削除します。
- 必要に応じて追跡されていないファイルを含め、適用する前にスタッシュの内容を表示することを忘れないでください。
これで誰かの時間短縮になれば幸いです。複数の設定で問題なく動作しました。