0

マスター ブランチとして、Githubリポジトリにコード化したフレームワークがあります。そのブランチには、フレームワークのコア ファイルのみが含まれているため、コア ブランチと名付けました。次に、他のブランチに、上記のコア フレームワークを使用するプロジェクトをリストします。これを行ったのは、ブランチで作業する方が簡単だと思っていたからですが、今発見したように、そうではありません。真剣に。

要約すると、コアブランチと、そのコアを使用するプロジェクトブランチがあります。現在、プロジェクト ブランチでは、主にプロジェクトに関連するコミット (画像 X の追加、スタイルシート Y の変更) を行っていますが、コアを変更してより良くすることもあります。

ここで私がやりたいことは、これも簡単だと思いましたが、プロジェクトよりもコアに取り組み始めたときに、コアへの変更をコア ブランチにマージすることです。いくつかの解決策があり、すべてが混乱し始めています。コアブランチを台無しにしたくないので、どうすればよいですか?

コミットをチェリーピックしてプッシュできることはわかっていますが、コアファイルへの変更履歴を保持したいので、リベースするように指示されました。問題は、コア ブランチをプロジェクト ブランチの特定のコミットにリベースすると、コアとは関係のないすべてのファイルと内容がプッシュされることです。では、特定のコミットからリベースするにはどうすればよいですか(そして、デフォルトのように思われる にではありませんか?)

プロジェクトブランチでのコミットがどのように見えるかについてのアイデアを次に示します。

プロジェクトブランチ

00:12 - Added image X
00:14 - Modified stylesheet Y to have a pink background (pink is pretty)
00:16 - Modified class core.background to handle pink background
00:18 - Modified class core.string to always capitalize Pink (because it's so pretty)

プロジェクト関連の最初の 2 つのコミットをマージせずに、最後の 2 つのコミットをコア ブランチにマージするにはどうすればよいですか?つまり、履歴を保持します。これらの 2 つの変更を 1 つではなく 2 つのコミットとしてコアに保持しますか?


編集:より多くの精度。私のコア フレームワークは、プロジェクトのフォルダー構成を定義するため、プロジェクト フォルダーのルートにある必要があります。夢だったサブモジュールではないのはそのためです。また、コアのフォークも試してみましたが、どうやら自分のプロジェクトをフォークできないようです。

ブランチ以外にやりたいことをやる方法があるなら、私はすべて耳を傾けます。

4

1 に答える 1

1

gitブランチは実際にはそのようには機能しません。ブランチはすべてリポジトリに関連しています。プロジェクトまたはプロジェクトの一部を別々のブランチに分けることは、実際には正しい方法ではありません。release最終的に、ほとんどのブランチは何らかのタイプのブランチにマージするか、破棄する必要があります。

コア ブランチと、そのコアを使用するプロジェクト ブランチがあります。現在、プロジェクト ブランチでは、主にプロジェクトに関連するコミットを行っています...

コア ファイルの変更履歴を保存したい [個別]

core-filesそのことから、2 つの別々のリポジトリ (1 つは for 用、もう 1つは for 用) の適切な使用例があるように思えprojectます。それらを異なるブランチの同じリポジトリに保持するのではなく、 を of にプルすることをお勧めします。これにより、すぐにいくつかの利点が得られます。coreprojectcore-filesgit submoduleprojects

  • projectcore歴史は別物です。
  • 別のプロジェクトで使用coreするのは非常に簡単です。coreのとしてインポートgit submoduleotherprojectます。
  • projectとの両方の履歴は、ブランチ間coreで選択する必要がなくなったため、維持するのがはるかに簡単になりました。
于 2012-05-21T23:42:14.553 に答える