1

別の開発者がブランチDEVELOPER_Aに分岐し、そのブランチで多くのコミットを行った場合、彼が完了したら、彼の作業をマスターにマージしたいと思います。しかし、私は彼の小さなコミットがすべてマスターブランチの履歴に表示されることを望まず、最後のコミットのみを気にします。それで、そのブランチをマージするときに、ブランチDEVELOPER_Aで彼の履歴を「押しつぶす」方法はありますか?

私はdeveloper_Aブランチでパッチを入手し、masterに適用することができましたが、結果がdeveloper_Aブランチからマージされたという事実をgitが追跡できなくなり、これは独立した変更であると考えるだけです。

ありがとうヤン

4

2 に答える 2

3

これはいくつかの方法で実行できますが、最も明白なのは、押しつぶされたマージを使用することです。

git merge --squash <other_branch>
git commit

gitは、マージコミットメッセージに押しつぶされたコミットからのログメッセージを事前入力しますが、自分に合わせてメッセージを自由に編集または削除できることに注意してください。

于 2012-06-13T16:39:10.243 に答える
0

ほとんどの場合、すべてをまとめるだけでなく、履歴をクリーンアップする必要があります。そのためのツールはgitrebaseです(履歴の変更はダウンストリームに大混乱をもたらすため、細心の注意を払って使用し、公開されたものには使用しないでください)。

OTOH、バグを追跡するための詳細な履歴(マイクロコミット)を手元に用意しておくと非常に便利です(gitbisectを参照してください)。

于 2013-01-17T03:16:49.500 に答える