0

私はGitの初心者です。私は次の設定をしています。

設定:

master-branch: 私のプロジェクトのメインの安定したブランチ。実際には、私のウェブサイトの html コードが含まれています。

ファイルを Web にアップロードしたとき、適切なファイルの場所を調整するために index.html にいくつかの変更を加えました。したがって、同じファイルの 2 つのバージョンがあります: masterbranch (mbVersion) と web (wVersion)

私がやった事:

これで、mbVersion にいくつかの変更を加えました。wVersion でこれらの変更が必要です。(ただし、wVersion のリンクを古い mbVersion に変更したくありません)

私がやろうとしていること:

Web バージョン用の新しいブランチ (Web ブランチなど) を作成し、特定のコミットをマスター ブランチから Web ブランチにマージすることを考えています。

質問:

  1. 私はそれを正しくやっていますか?他に良い方法はありますか?

  2. これが正しい方法である場合、その特定のコミットを Web ブランチにマージすると、必要な変更が行われ、リンクは変更されませんか? では、どのようにマージしますか?これを使用する予定です: How can I merge a specific file from one branch to another branch in Git

  3. チェリーピックを使いましょうか?

私が試したこと:

http://jasonrudolph.com/blog/2009/02/25/git-tip-how-to-merge-specific-files-from-another-branch/を試しましたが、両方のファイルの内容をマージしません. 基本的に、ファイルの内容を実際にマージするのではなく、ファイルを上書きするだけです。

実際、これは大きなプロジェクトで、約 20 人が取り組んでいます。だから、私は何も台無しにしたくありません。

4

3 に答える 3

1
  1. それらのために2つの個別のブランチを作成することは良い考えだと思います.

  2. あなたがオンwVersionでマージしていることを確認してくださいmbVersion。gitはあなたが期待するように仕事をします。

  3. 実際には、特定のコミットとその親の差分に基づいてパッチを作成し、それを現在のブランチに適用するcherry-pickため、個人的にはお勧めしません。履歴ではなくファイルのみを気にするcherry-pickため、将来のマージで競合が発生する可能性があります。cherry-pick

于 2013-07-04T08:57:30.727 に答える
1

コードがデプロイされている場所に応じて、構成にブランチとブランチを 1 つだけ持つことをお勧めします。ここで詳しく説明されているように、 gitを使用すると、汚れフィルターでそれをサポートできます。

于 2013-07-04T08:49:49.527 に答える
0

mbVersionからpullの最新の変更を行いたいが、wVersion で特定のファイルに加えた変更が失われないようにしたいですよね?

この場合はpull、通常どおりできます。Git は、wVersion に変更を加えたことを認識し、これらの変更はすぐには上書きされません。の後に、pull次の 2 つのいずれかが表示されます。

  1. wVersion で変更したリンクに対して誰も (mbVersion で) 作業しなかった場合、プルはこれらのリンクにきれいに適用 (自動マージ) されます。
  2. これらのリンクのいくつかが mbVersion からの最後の後に mbVersion で変更された場合、pullマージの競合が発生します。この場合、ローカルの変更を保持するように git に指示するだけです。

:ワークフローにはpulls フォーム mbVersion が wVersion に含まれていると仮定しましたが、その逆は含まれていません。wVersionpullから mbVersion に戻すと、このアプローチは機能しない可能性があります。

于 2013-07-04T08:50:35.613 に答える