0

タイトルのツールの組み合わせを使用して、ブランチをチェックアウトすると、SourceTree/GITは次のようになります。

  1. 以前にチェックアウトしたブランチからフォルダーを削除しないでください。したがって、FOLDER1とFOLDER2を含むBRANCH-ALPHAを使用してから、FOLDER2とFOLDER3のみを含み、FOLDER1を含まないBRANCH-BETAをチェックアウトすると、FINDERの結果の構造はFOLDER1を示します。まだそこにあります。これを何度も再現できます。

  2. 多くの場合、以前にチェックアウトしたブランチのファイルを上書きすることすらありません。そのため、BRANCH-BETAをチェックアウトしたときに、EclipseでBRANCH-ALPHAが引き続き表示されます。

チェックアウトを実行する前にEclipseを閉じてから、Eclipse、CLEAN、およびBUILDをすべて開きます。それは本当にGITの問題です。

唯一の「解決策」は、すべてのフォルダーとすべてのメタデータを削除してから、ブランチをチェックアウトすることです。これは通常、Eclipseを「説得」してプロジェクトを開き、新しいワークスペースや新しいメタデータなどを作成してから、パスなどの多くのものを修正するのに数時間かかります。

原因をさらに調査し、解決策を見つける方法についてのアイデアは非常に高く評価されています。

4

1 に答える 1

0

Gitは、新しいコミットをチェックアウトするときにのみ空のフォルダーを削除します。隠しファイルが保存されているため、明らかに空のディレクトリが表示される場合があります。Finderでそれらを開いて動作を監視しようとすると、Finderがフォルダの表示方法を追跡するために隠しファイルを作成するため、実際に問題が発生しています。

フォルダがそこにあるのは本当に気になりますか?各チェックアウトの後に実行されるチェックアウト後のフックを追加できます。git clean -dxfこれにより、gitによって認識されていないすべてのファイルが削除されます。コンパイルされたクラスも削除されるため、新しいビルドが必要になることに注意してください。

もう1つの可能性は、何かがファイルまたはディレクトリをロックしているため、他のプログラムによって開かれている/ロックされている間はgitがそれらを削除できないことです。これは、一部のファイルが正しいバージョンに更新されない理由も説明します。ブランチを切り替えるとgitは文句を言いますか?実際にファイルにロックがある場合は、そうする必要があります。

于 2013-01-05T06:47:50.787 に答える