0

git で master から機能ブランチを分岐したとしましょう。今、このブランチにいくつかの変更をコミットし、マスター ブランチの準備ができていると思います。そこで、リモート リポジトリにプッシュし、github UI を使用して、フィーチャー ブランチからマスター ブランチへのプル リクエストを発行します。

現在、プル リクエストのフィードバックにより、機能ブランチのいくつかを変更する必要があります。変更を新しいコミットとしてコミットしてプッシュする簡単なオプションになりました。ブランチが後でマージされると、私の機能は複数のコミットに分割されます。

複数のコミットを回避したい場合、どのような可能性がありますか? 次の可能性が見えます。

  1. 変更を使用git commit --ammendして現在のコミットに追加する
  2. git rebase -i変更をまとめて 1 つのコミットに使用して押しつぶす

これらのソリューションには両方とも大きな問題がありpush -fます。

質問:

  1. このワークフローは何か間違っていますか? コミットを集約するのは間違っていますか?それらを別々のコミットとして残す必要がありますか?
  2. いいえの場合、ここで使用してもよろしいpush -fですか?
  3. はいの場合、本当に悪いことをしないようにするにはどうすればよいですか? どうにかして影響を自分のリモート ブランチだけに限定し、他には影響を与えないようにすることはできますか? 自分のフィーチャー ブランチを破棄するのはそれほど悪くありませんが、マスターを破棄するのは良くありません。
  4. を回避する他の可能性はありpush -fますか?
4

4 に答える 4

0
  1. 基本的にはそうではありませんが、誰もそのブランチを引っ張っていないことが確実な場合は、その履歴を自由に書き換えることができます。そのような操作のためにリモートでプルされたブランチの履歴を書き換えるべきではありません。ローカル リポジトリで問題が発生し、おそらく、書き換えた履歴が再導入される可能性があります。
  2. すでに述べたように、リモートにプッシュする前にローカル履歴を書き換えるだけです。
  3. ポイント3。
于 2013-06-06T10:40:34.007 に答える