チームメンバーは、マージする準備ができているときに、コミットをsquash
にすることがあります。開発の過程で、多くのコミットを行い、かなり有効なgitの歴史を持つことは役に立ちます。
あなたのブランチをマスターにマージする時間が来たとき(もちろん、同僚があなたのPRを見直しました:ウィンク:)コミットを1つにすることを選ぶかもしれません。大規模なチーム。
あなたのgitのログをチェックしていることを行うことができます。あなたのEDITOR
はそれぞれがロードされるドキュメントごと
git rebase -i HEAD~4
コミット:
git log
次にあなたが一つに結合したいコミットを選択しますそれはメッセージです。エディタのプロンプトに従います。
pick 01d1124 Adding license
pick 6340aaa Moving license into its own file
pick ebfd367 Jekyll has become self-aware.
pick 30e0ccb Changed the tagline in the binary, too.
# Rebase 60709da..30e0ccb onto 60709da
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
一部のチームはthis particular workflowに従い、チームメイトがこれをやることを好むが、これに対して議論がある。
gitログを参照して、行がいつどのように消えるかを調べましたか? 2つの親コミットを投稿し、消滅したテキストに気づいたところで結合をコミットできますか? –
これらの欠落している行の中で比較的ユニークな例を見つけ、 'git log -Gphrase'を使用して、その中にそのフレーズを含む行を追加または削除したすべてのコミットのリストを表示します。あなたの検索範囲を絞り込む必要があります – LightBender
git mergeを再帰的戦略で使用すると、変更を上書きすることはできますか?(https://stackoverflow.com/questions/45453017/can-changes-be-conflictless-overwritten-when -using-git-merge-with-recursive-stra) – max630