38

ライブラリの1つのgitサブモジュールを、作業中のプロジェクトに複製しました。問題は、クローン作成後に、クローン作成されたサブモジュールのいくつかの行を変更する必要があるということですが、それらの変更を元のリポジトリにプッシュしたくありません

それらの変更をスーパープロジェクトに残してほしい。これは可能ですか?どうすればそれを達成できますか?

編集:@GoZonerが言ったように、基本的にその:

  1. git clone foo;
  2. cd foo;
  3. gitサブモジュールinit;
  4. gitサブモジュールの更新;
  5. cd path / to / submodule;
  6. gitチェックアウトマスター;
  7. サブモジュールに変更を加える
  8. git commit-am"何か";
  9. git push origin(スーパープロジェクト);

次に、スーパープロジェクトを別のコンピューターに複製するときに(手順4まで)、それらの変更をスーパープロジェクトに保存します

4

2 に答える 2

12

'サブモジュールへのコミットなし'の制約を緩和する必要があると思います。2つのオプションがあります。

  1. サブモジュールの変更をサブモジュールブランチにコミットします。これはチームのブランチであり、チームがサブモジュールの変更を行う場所です。誰かがスーパープロジェクトのクローンを作成してサブモジュールを更新すると、チームのブランチのコンテンツを取得します。
  2. スーパープロジェクトリポジトリのすぐ隣にあるサブモジュールリポジトリのクローンを作成し、クローンを指すようにサブモジュールを初期化します。次に、サブモジュールに変更をコミットすると、それらはクローンにコミットされます。スーパープロジェクトのクローンを作成する人は誰でも、サブモジュールのクローンからサブモジュールのコンテンツを取得します。

そうでなければ、私はあなたの欲望を達成する方法がわかりません。

于 2012-06-03T16:56:32.107 に答える
0

変更については、別のブランチをチェックアウトできます。そのブランチを押し上げないでください。プッシュしたい変更は、元のブランチの1つで行います。そのブランチを、プッシュアップしない特別なブランチにマージします。他の方法でマージする必要があるため、特別なブランチで他の作業を行わないでください。あなたはそれを行うことができますが、それは複雑になります。

于 2012-06-01T19:22:07.123 に答える