2017-07-22 6 views
1

仕事中には、いくつかの共通の基本機能を持つ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-1checkoutにしたいだけでなく、フォルダは次のようにgitが追跡していることを、ローカルフォルダにバージョンの全体のものをコピーします。私は枝のリストを取得するとき、それは次のようです私の仕事のようにworktreegit cloneまたはgit checkoutそうするか、もっとトリッキーなことをする必要がありますか?

+0

バージョン別には、バージョン管理自体ではなく、顧客ごとに異なる機能を意味します。 – vaheeds

+0

私はあなたの説明を読んだ後、あなたが職場で自宅で同じことをすることができるので、混乱しています。自宅のPCのリポジトリのリモートブランチから別のローカルブランチを作成し、 'git-worktree'を使って別のローカルフォルダにチェックインすることができます。 – ElpieKay

+0

私はgit worktreesを誤解していると思います。彼らは決して本当に「必要」ではなく、実際には何かをより速くするか、よりスペース効率の良いものにすることができます。通常の 'git clone'から始めて、それを理解すれば、あるクローンを他のクローンに基づいてワークツリーに置き換える方法を考え出すことができます。 – Mort

答えて

0

最後に私は自分の家で私の仕事のように同じ仕事をするためにこれを使います。

$ git worktree add --checkout ../version-1 version-1 
$ git worktree add --checkout ../version-2 version-2 

これは、異なるフォルダ(作業ツリー)で私の長時間実行されるブランチをチェックアウトします。

関連する問題