リベースとプッシュに関する唯一のルールはそれだと思います
コミットが公開リポジトリにプッシュされた後、リベースしてプッシュしないでください
しかし、orのみを使用し、orフラグを使用しない場合、それは決して起こり得ないというのgit push
は本当git push origin <branch-name>
ですか?--force
-f
パブリックリポジトリがベアリポジトリである場合(つまり、パブリックリポジトリ自体に直接リベースできるもの)、git config receive.denyNonFastForwards
とreceive.denyDeletes
trueを設定すると、問題ないはずです。
trueに設定すると
git-receive-pack
、早送りではないrefの更新を拒否します。これを使用して、プッシュが強制されている場合でも、プッシュによるそのような更新を防ぎます。trueに設定する
git-receive-pack
と、参照を削除する参照更新を拒否します。これを使用して、プッシュによるそのような参照の削除を防ぎます。
「''を拒否するようにgitリポジトリを設定する方法はありますgit push --force
か? 」も参照してください。
たとえば、これらの設定はGitHubリポジトリでは直接利用できないことに注意してください。
確かに(私は思うに)、リモートリポジトリを使用しないと「悪い」状態になることは決して--force
ないので、誤ってそれを行うことはできません。
ただし、すでにリモートにあるコミットをリベースすると、ローカルリポジトリは、とにかくリベースのポイントを打ち負かす体操を行わずにリモートリポジトリにプッシュできない状態になる可能性があります。
はい。--forceを使用せずに、リベースしてからリモートトラッキングブランチをプッシュすることはできません。
「-f」フラグがないと、それは起こり得ません。
しかし、あなたはそれをプッシュする能力なしであなたのブランチで何をしますか?
Rebaseは主に、ブランチ履歴を適切でシリアル
に保つためのものです。そのコードにマージするのがあなただけの場合、またはローカルでのみ実行している場合は安全です。
それ以外の場合は、リベースする前に、他のすべての寄稿者と同じページにいることを確認してください