仕事中には、いくつかの共通の基本機能を持つ2つの異なるバージョンがあるプロジェクトがあります。私はgit worktree
を使って、これらのバージョンを別々のフォルダに入れます。これは、それぞれのバージョンに対してmaster
の横に2つの長時間実行するブランチがあり、共通の機能はmaster
です。したがって、1つのリポジトリを持つ3つのフォルダがあります。また、このためのリモートリポジトリがあり、すべてのものがそこにプッシュされます。git:ローカルに存在しないリモートブランチのワークツリーをコピーします
$git branch -a
*master
version-1
version-2
remote/origin/master
remote/origin/version-1
remote/origin/version-2
は、自宅のPCで、私はmaster
のフォルダを持っており、このローカルリポジトリは、私の仕事のレポと同じリモートにリンクされています。
$git branch -a
*master
remote/origin/master
remote/origin/version-1
remote/origin/version-2
私はversion-1
にcheckout
にしたいだけでなく、フォルダは次のようにgitが追跡していることを、ローカルフォルダにバージョンの全体のものをコピーします。私は枝のリストを取得するとき、それは次のようです私の仕事のようにworktree
。 git clone
またはgit checkout
そうするか、もっとトリッキーなことをする必要がありますか?
バージョン別には、バージョン管理自体ではなく、顧客ごとに異なる機能を意味します。 – vaheeds
私はあなたの説明を読んだ後、あなたが職場で自宅で同じことをすることができるので、混乱しています。自宅のPCのリポジトリのリモートブランチから別のローカルブランチを作成し、 'git-worktree'を使って別のローカルフォルダにチェックインすることができます。 – ElpieKay
私はgit worktreesを誤解していると思います。彼らは決して本当に「必要」ではなく、実際には何かをより速くするか、よりスペース効率の良いものにすることができます。通常の 'git clone'から始めて、それを理解すれば、あるクローンを他のクローンに基づいてワークツリーに置き換える方法を考え出すことができます。 – Mort