2016-12-15 4 views
1

私はGITで3年間働いていますが、この問題に直面することは覚えていません。 私は新しいリポジトリを作成しました。各リポジトリには異なるコードがあります。フォルダ構造は外部レベルではほぼ同じですが、ブランチごとにいくつかのサブフォルダといくつかのファイルが変わります(かなり一般的な状況です)。ブランチを切り替えると、前のブランチのコミットされたフォルダとファイルが返されます

新しいブランチを作成するためにベースとして使用する空のブランチがあります。私はここから「n」のカスタマーブランチを作成しました。 1番目のCustomerブランチでは、私のローカルから1番目のブランチにコードをコピーしました。コミットし、変更をプッシュしました。今、チェックアウトするときに2番目のブランチ(理想的には空にする必要があります)が、1番目のブランチコードはuntrackedファイルのままです。新しいコードを各ブランチにコピーする前にclean-dfを実行しています。

なぜコミット済みのが、以前使用されていたブランチから新しいブランチに変更されていますか?

Gitのバージョン - 1.7

+0

Gitバージョン?これは実際に期待される行動ではありません。 – 1615903

+0

はい。私はすべての支店でこれを繰り返し続けました。行動は一定です。バージョン - 1.7.11.4 – user2552451

+0

チェックアウトした2番目のブランチのソースは何ですか? –

答えて

0

はできるだけ早くあなたがmasterで最初の分岐をコミットしてプッシュされて、あなたが出発点は、リポジトリにあるもの定義されました。この後に来るすべてのブランチはこの出発点に相対的です。したがって、git clean -dfを実行したときに「空」に戻らなかった場合は、すべてのファイルを単に削除するだけです。その後、2つ目のブランチファイルに貼り付けると、すべてがuntrackedとして表示されました。

ここで最も理にかなっていると思うのは、すべての顧客ブランチの共通祖先である支店で新しいリポジトリを初期化することです。その後、特定の顧客のすべてのファイルを壊してブランチを作成し、新しいリポジトリにプッシュすることができます。

+0

私の最初のブランチはマスターではありません。マスターは最初のブランチです。私はマスターからすべてのカスタマーブランチを作成しました。したがって、コードを追加する前にすべてのブランチが最初は空だったのですが、 – user2552451

+0

はい、リポジトリ、古いもの、または新しいものの 'master'ですか? Gitのすべてのブランチは、 'master'で非常に最初にコミットされたもの以外は、他のブランチ/コミットに関連するポインタであることを理解していますか? –

+0

@TimBiegeleisenは、孤立した枝を除いています。 – 1615903

関連する問題