0

マイナーなバグ修正を 1 つのコミットにまとめようとしたので、

 git rebase -i 2afaw3f

これで、ローカルリポジトリが少しきれいになりましたが、リモートもクリーンにすることを期待してこれをプッシュしようとすると、返されますEverything up-to-date

そして、リモートも押しつぶされたかどうかを確認すると、いいえが証明されます。

リモート ツリーをリベースするにはどうすればよいですか?

編集:そして私は

git push remote-name branch-name

うーん、どうすれば自分のリモート構成を知ることができますか?

4

1 に答える 1

0

インタラクティブなリベースのベースの前にリモート ブランチをコミットにリセットし、後でプッシュすることができます。

これは技術的な解決策です。リモート リポジトリを使用しているのが 1 人だけの場合にのみ有効です。他の誰かがすでにブランチをチェックアウトしている場合、変更セットをプッシュするのに苦労するでしょう。

押しつぶされたリベースは新しいコミットです:

A - B - C - D - E
                ^
              branch

対話型リベース後:

A - B - C - D - E
     \
       CDE
        ^
      branch

コミット C、D、および E は置き換えられませんが、新しいコミット CDE がリポジトリに追加され、ブランチはそのコミットにリセットされます。リモート リポジトリの他のユーザーは、コミット "E" で "branch" を引き続き表示し、それに何かを追加した可能性があり、プッシュできません。

したがって、リモートリポジトリの履歴を変更することは決して良い考えではありません...

于 2013-07-06T13:48:14.787 に答える