3

多くの場合、私は heroku を使用しており、プロジェクトの終わり近くに、予期しないバグを修正するためにいくつかの小さなコミットを行っています。これにより、1 つにリベースしたい 10 個の小さな差分コミットが作成されます。問題は、履歴が既にプッシュされていることです。これらのことをどのように調整しますか?

4

4 に答える 4

6

あなたがやりたいことは、人々が示唆するほど悪くはありません。共有マスターブランチにプッシュされた変更をリベースしたくないのは事実です。非共有/作業ブランチまたは非共有リポジトリに送信された変更をリベースすることは非常に一般的です。多くの人は、プロジェクトの履歴を意味のない (そしておそらく不完全/機能しないコミットで) 雑然とするよりも、より良い方法だと考えています。

自問する質問は、「私がプッシュしているブランチから誰かが引っ張ってくるか」ということです。答えが「いいえ」の場合、そうすることの問題は理論的なものにすぎず、雑然とした歴史の問題よりもはるかに重要です。答えが「はい」の場合、もちろんそれはしたくありません。ただし、その場合、そのリポジトリの非共有ブランチからデプロイできるかどうかを自問する必要があります。進行中のテスト ブランチを作成し、自由にコミットおよびリベースします。作業が完了したら、心ゆくまでリベースし、そのコミットを共有ブランチにプッシュします。

于 2012-01-05T15:13:06.863 に答える
5

リベースされたブランチ (Git はデフォルトで拒否します)を本当にプッシュしたい場合は、次のコマンドを使用できます。

git push --force heroku master

他の人がすでに述べた理由から、これは一般的に非常に悪い考えであることに注意してください.

于 2012-01-03T23:44:07.760 に答える
2

すでにプッシュした後は、履歴を書き換える (リベースする) べきではありません。他の誰かがそのリモートからプルし、リベースしてプッシュすると、恐ろしいマージ競合が発生します。

于 2012-01-03T23:17:25.890 に答える
0

マンページからgit-rebase:他の人が作業に基づいているブランチをリベース(または他の形式の書き換え)することは悪い考えです。その下流にいる人は、手動で履歴を修正する必要があります。

したがって、一般的には、何かをプッシュした後にリベースしないでください。

于 2012-01-03T23:16:27.110 に答える