0

私は、多かれ少なかれ自分のコードをフレームワークコードと混合することを強制するフレームワークを使用しています。つまり、どちらも独自のサブディレクトリにきちんと分離することはできません。これまで、.gitignoreを使用してすべてのフレームワークコードを無視することでそれらを分離してきましたが、フレームワークをアップグレードする必要があるときに、アップグレードブランチを作成し、アップグレードを実行しました。これは、以前は追跡されていない/無視されたファイルが新しいブランチで追跡されたため、マスターブランチに切り替えたときに存在しなくなりました。

大規模なfacepalmの瞬間から回復した後、Gitサブモジュールの使用に切り替える必要があると思いました。ただし、これがもたらす問題は、サブモジュールに属するコードをサブディレクトリに保持する必要があるように見えることです。Pro Gitから:

サブモジュールを使用すると、Gitリポジトリを別のGitリポジトリのサブディレクトリとして保持できます。

これは本当にgitサブモジュールの制限ですか、それともそれを回避する方法はありますか?

4

1 に答える 1

1

私はそう信じています (サブモジュールはそれ自体で完全な git リポジトリであり、同じフォルダーに 2 つの git リポジトリを含めることはできません)。また、フォルダーにサブモジュールがある場合Foo、外部リポジトリはFoo、サブモジュールがどのリビジョンにあるかを追跡することを除いて、すべてを無視すると思います。

(警告: 巨大なハック) ただし、2 つの別個の git リポジトリを別の内部に配置し、それぞれ.gitignoreの s に「ただ」十分注意することはできますが、一方のリポジトリで他方のリビジョンを制御することはできません。リポジトリは にあります。また、最も外側のリポジトリは、プロジェクトが配置されている場所の外の 1 つのフォルダー レベルである必要があります (そのフォルダーの最上位ファイルを含める必要があり、そこに既にメイン リポジトリがある場合)。したがって、プロジェクトが にある場合は/foo/bar/Project/foo/barのメイン リポジトリに加えて、 にフレームワーク リポジトリが必要です/foo/bar/Project

于 2012-09-04T17:04:01.940 に答える