Git プッシュを適切に強制するにはどうすればいいですか? 質問する

Git プッシュを適切に強制するにはどうすればいいですか? 質問する

リモートの非ベアな「メイン」リポジトリを設定し、それを自分のコンピューターにクローンしました。ローカルでいくつかの変更を加え、ローカル リポジトリを更新し、変更をリモート リポジトリにプッシュしました。その時点までは問題ありませんでした。

さて、リモート リポジトリで何かを変更する必要がありました。その後、ローカル リポジトリで何かを変更しました。リモート リポジトリへの変更は不要であることに気付きました。そこで、git pushローカル リポジトリからリモート リポジトリに変更しようとしましたが、次のようなエラーが発生しました。

履歴が失われないように、高速転送以外の更新は拒否されました。再度プッシュする前にリモートの変更をマージしてください。git push --help詳細については、「高速転送に関する注意」セクションを参照してください。

私はおそらく

git push --force

ローカル コピーを強制的にリモート コピーに変更をプッシュして、同じにします。更新は強制されますが、リモート リポジトリに戻ってコミットすると、ファイルに古い変更 (メインのリモート リポジトリに以前あった変更) が含まれていることに気付きます。

前にも述べたように回答の1つに対するコメント:

[私は] 強制的に実行しようとしましたが、マスター サーバーに戻って変更を保存すると、古いステージングが表示されます。そのため、コミットするとリポジトリは同じではありません。また、git push を再度使用しようとすると、同じエラーが発生します。

この問題を解決するにはどうすればいいでしょうか?

ベストアンサー1

ただこうしてください:

git push origin <your_branch_name> --force

または特定のリポジトリがある場合:

git push https://git.... --force

これにより、以前のコミットが削除され、現在のコミットがプッシュされます。

適切ではないかもしれませんが、このページに偶然出会った人は、簡単な解決策が欲しいと思うかもしれないと思いました...

ショートフラグ

また、 は-fの略な--forceので、

git push origin <your_branch_name> -f

も動作します。

おすすめ記事