0

Bitbucket にリポジトリがあります。コミットをつぶそうとしたときに、コミットログを台無しにしてしまいましc2658250a1837e

ここに画像の説明を入力

これらのコミットを押しつぶそうとすると0942142、基本的に空である が発生しました。つまり、そのコミットを試してみると、ファイルが変更されていないことが示されます。これは、「マージ」コミットでは通常のことです-わかりません。

明らかに、Bitbucket にプッシュする前にこのような問題を修正する必要がありますが、事後にどうすれば修正できますか? スカッシュしたいのですが0942142、可能であれば、「使用されていないファイルを削除しました」という単一のコミットのように見えます。c2658250a1837e

PS: これは (今のところ) プライベート リポジトリであるため、(まだ) 誰もこれらの変更をプルしていません。

編集:以下の TheBuzzSaw の回答は、0a1837e. ただし、これら 3 つのコミットを押しつぶして、残りの履歴を保持したかったのです (スクリーンショットはモックアップであり、実際の変更を表すものではありません)。だから私はこれをしなければなりませんでした:

git reset --hard HEAD~7
git cherry-pick -n 0a1837e..c265825
git cherry-pick -n -m 1 0942142
git commit -m "Removed unused files"
git cherry-pick 8f8308b
git cherry-pick f7b14f5
git cherry-pick bb90ff9
git cherry-pick 976985d
git cherry-pick 6f4d0c2

これで、コミット ログが美しくなりました。

ここに画像の説明を入力

4

1 に答える 1

2
git branch area51
git reset --hard HEAD~7
git merge --squash --no-commit area51
git commit -m "My new commit message."
git push -f
git branch -D area51

必要に応じて調整します。

于 2014-01-14T19:00:33.037 に答える