2017-07-02 9 views
4

これは簡単な質問です。私はgitには比較的新しいです、そして、私がまだしていないいくつかのことがあります... git。gitでは、ブランチ内の特定のコミットをどのようにロールバックしますが、マージ後も親ブランチにロールバックしません。

仮説的な状況:

は開発ブランチが2つのコミット、C1とC2が含まれているとします。

リリースブランチはc2の後に作成されたので、リリースブランチはまた、C1とC2が含まれています。

その後はc1は、後のリリースに延期する必要があることを決めています。

リリース枝がバック開発にマージされたときにも、その後の開発ブランチからC1を削除せず、リリースブランチからC1を削除するための推奨方法は何ですか?

+0

を 私が得ている3の答えは次のとおりです。 1)下記のとおりです。 2)c1より前のリリースブランチを再作成し、c2をチェリーピックする。 3)リリースブランチでc1を元に戻してから、そのまま終了させて​​ください(開発に併合しないでください)。私の特定のケースで は、私は3 –

+0

そうに傾いています。何か良いものがあるはずです。待とう。 – maverick

+0

私は、より短い解決策があるとは確信していません。私が考えることができる唯一の他のアプローチは、C1より前のコミットでリリースブランチをリベースしてからチェリーピッキング手術を行うことです。 –

答えて

4

その方法をお勧めかどうかはわからないが、それはあなたの問題を解決するだろう:

  1. 元に戻すには、リリースブランチからC1をコミットします。開発し、リリースブランチをマージするとき(git revert <c1-commit-id>
  2. 、STEP1で生成されたコミット復帰を元に戻します。 (git revert <c1-revert-commit-id>)

Gitのコマンドを元に戻す: - 。はい、答えは助け...しかし、私は誰よりエレガントな何かを持っていたかどうかを確認するために待機してみたかったgit revert <commit-id>

+0

Upvote。問題を解決するが、このようにするために長いことをする。 –

+1

ええ、私は知っている。私はもっ​​と良い解決策があると信じています。 – maverick

関連する問題