2016-05-09 7 views
1

私は2つのブランチ、1つは "gh-pages"と呼ばれ、もう1つは "master"ブランチです。どちらも "node_modules"のような別個のフォルダを持っていますが、それらは全く異なっています。そして、彼らはuntrackedです!別のnode_modulesフォルダのgit checkout

です。 「GH-ページ」ブランチ

git checkout gh-pages 

私はすべてを追跡Gitは単に削除(ただし、保存)しないように指定する方法が必要になりますが、また、(「node_modules」フォルダなど)すべての人跡未踏のファイルとフォルダを次のように"master"ブランチからそして、追跡されたすべてのファイルとフォルダを、 "gh-pages"ブランチからロードし、すべての未追跡のファイルとフォルダをロードします。

簡単な方法がありますか、2つが十字にならないように、それぞれのチェックアウトのために追跡されていないファイルとフォルダを本当に削除する必要がありますか?

答えて

1

これはgitでは不可能です。定義によると、未追跡のファイルはファイルシステムの一部であり、git'sバージョンコントロールではありません。作業ツリーで

Gitチェックアウト

アップデートファイルは、インデックスまたは指定されたツリー内のバージョンと一致します。パスが指定されない場合、git checkoutはHEADを更新して、指定されたブランチを現在のブランチとして設定します。

したがって、ブランチをチェックアウトすると、ブランチ内のファイルの作業コピーが取得されます。 node_modulesのようなトラッキングされていないファイルは、特定のブランチの一部ではなくローカルファイルシステムのままであるため、そのまま残します。

+0

は、あなたが任意の回避策を知っていますか?私は、異なるノードモジュールを持つgh-pagesブランチを持つことはGitHubの共通の動作であることを意味します。 – user3631654

+1

あなたのVCSの一部にして、それらを追跡してください:) –

+0

あなたは深刻な権利を持つことはできませんか?現在のプロジェクトでは、実際の66個のソースファイルが176 KBの大きさである14000個以上のファイルを持つ約60 MBのノードモジュールが存在します。 – user3631654

1

私も問題を抱えていました。私の回避策はgit worktreeです。各ブランチに対してリンクされた作業ツリーを作成し、メインの作業ツリーの代わりにnode_modulesを配置します。

この同様の質問を参照してください: Switch node_modules folder when I change git branch

それはgit cloneよりも優れている理由については説明していますhttps://spin.atomicobject.com/2016/06/26/parallelize-development-git-worktrees/

関連する問題