0

だから私は git に 2 つのブランチを持っています:developrelease. 私はdevelop今までブランチを使用してきました。developブランチで利用できるようにしたいブランチにコミットしましたrelease。どうすればいいのですか?ここで少し混乱しています。

1)これは自動的に行われますか git checkout -b release

develop2)ブランチに戻るには、チェックアウトを行うだけですよね? またはマージを行う必要がありますか?

4

2 に答える 2

2

あるブランチのコミットを別のブランチで利用できるようにするためのオプションがいくつかあります。どれを選択するかは、後で履歴をどのように表示するかによって異なります。

  1. マージは、の先端と の前の先端のrelease2 つの親を持つブランチにコミットを作成します。は、 と からのすべての作業を行います。にマージするには、クリーンな作業コピーがあることを確認してから、 を実行します。developreleasereleasedevelopreleasedevelopreleasegit checkout releasegit merge develop
  2. 上から作成された個々のコミットを選択することもできます。チェリーピッキングは、名前を付けたコミットで行われた正確な変更を実行する新しいコミットを作成します。これは、 で大量の作業を行ったが、1 つまたは 2 つのものだけを引き継ぐ必要がある場合に便利です。チェリーピックするには、 を見て、必要なコミットの名前を付けた sha ハッシュをコピーし、 を実行してから.developreleasereleasedevelopgit loggit checkout releasegit cherry-pick <commit hash>
  3. あるコミットから別のコミットに大きな範囲を移動する必要がある場合は、rebase --ontoを使用できます。少し高度ですが、興味のある方は読んでみてください。

追加の質問に答えるには:

  1. いいえ!の一般的な目的はgit checkout作業コピーを名前を付けたもののように見せることです。を実行するgit checkout releaseと、git は作業コピー内の実際のファイルを、最後にコミットされたときの状態に変更しますrelease。チェックアウトは既存のブランチを変更しません。-b(また、 if releasealready exists;は必要ありません。これcheckout -bは、ブランチの作成とチェックアウトを一度に行うための便利なショートカットです。)

  2. 同じように、元に戻すには、git checkout developもう一度行うだけです。

于 2013-11-02T17:30:12.267 に答える
0

あるブランチから別のブランチに変更を加えたい場合は、マージを行う必要があります。

于 2013-11-02T07:51:55.437 に答える