Nサブモジュールを持つスーパープロジェクトがあります。 Git Submodule Tutorialサブモジュールを使用したGit分散ワークフロー
私はすべてのサブモジュールの公開リポジトリとスーパープロジェクトのパブリックリポジトリを持っています。これはすべてリモートホストのmachine1/path/to/public/repos.git
です。これらは私の公開リポジトリと呼ぶことにする。
ここで、ユーザーXは自分のパブリックリポジトリからスーパープロジェクトをクローンし、すべてを自分のプライベートレポにプルします。彼のローカル.git/config
と.gitmodules
のすべての参照は私の公開reposを指しています。 Git Distributed Workflows
この方法でユーザXと私は、私たち自身の公開リポジトリに地元の変更をプッシュすることができ、その後から変更をプル:
は、私たちは、分散ここで説明したワークフローを使用できるように、ユーザXが自分の公開リポジトリを持ちたいですお互いの公開レポ私は、同じ公開リポジトリにプッシュする必要はありません。
Xのローカルリポジトリの.gitmodules
は私のpublic reposを指しているので、Xはulrを変更してパブリックreposを指すようにする必要があります。 .gitmodulesはコミットされているので、Xがコミットすると、&は公開リポジトリを参照するように変更した後に.gitmodules
を公開し、公開リポジトリから変更を取ります(私のローカル.gitmodules
は彼の公開を参照します)私の代わりにレポが必要な結果ではない)。
だから、あなたは最高の選択肢であるものだと思います:
- リポジトリのツリーから
.gitmodules
を取り外し、それはもはや追跡されていないので.gitignore
に追加します。 .gitmodules
をステージングしないでください。なぜ私は悪い考えであるかわかりません。- 使用
git --update-index assume-unchanged .gitmodules
これらのオプションのいずれかが1のgit clean
を実行したり、すべての人跡未踏のファイルを破棄した場合.gitmodules
が一掃されるという欠点を持っています。
Xの.gitmodules
の変更を自分のパブリックリポジトリを恒久的に参照し、誤って設定を消去したり、不要な変更を取り込んだりする心配はありません。
申し訳ありませんが、私は最初にそれを読んでいる瞬間にこの答えを受け入れるには長い時間がかかりました。理解できませんでした。 –