バージョン管理に Git を使用する大規模な Scala プロジェクトに取り組んでいます。私のワークフローは、自分のブランチで新機能に取り組み、必要に応じて切り替えることです。コードのさまざまなリリースは、独自のブランチにあります。すべて非常に標準的です。
コードの特定のバージョンのバグを修正する必要がある場合は、正しいブランチに切り替えてバグを修正し、コミットしてから元の場所に戻します。
問題は、git はすぐに別のブランチに切り替えることができますが、コードを再コンパイルする必要があることです。これには数分かかります。次に、バグを修正し、自分のブランチに戻り、もう一度再コンパイルします。これにはさらに数分かかります。Git が非常に高速であるという目的を無効にしているようです。
他の誰かがこれに遭遇しましたか?それを回避する方法はありますか。これは Scala 固有の問題ではないと確信しています (ただし、Scala はコンパイルが非常に遅いですが)。
3年以上後に更新
ここ数年、@djs answer (git-new-workdir) を使用しています。それは私にとって非常にうまくいきました。私はマスター ディレクトリといくつかの他のディレクトリ (運用、次のリリースなど) を持っており、そこで作業を行う必要があるときに切り替えます。オーバーヘッドはほとんどなく、本番環境にすばやく切り替えて、何かをテストしてから、元の作業に戻ることができます。
7年以上後に更新
git-worktreeが git-new-workdir の代わりになるようです。使用するには:
cd ~/git/my-repo
git worktree add ~/git/my-linked-repo