4

リベースとプッシュに関する唯一のルールはそれだと思います

コミットが公開リポジトリにプッシュされた後、リベースしてプッシュしないでください

しかし、orのみを使用し、orフラグを使用しない場合、それは決して起こり得ないというのgit pushは本当git push origin <branch-name>ですか?--force-f

4

4 に答える 4

6

パブリックリポジトリがベアリポジトリである場合(つまり、パブリックリポジトリ自体に直接リベースできるもの)、git config receive.denyNonFastForwardsreceive.denyDeletestrueを設定すると、問題ないはずです。

trueに設定するとgit-receive-pack、早送りではないrefの更新を拒否します。これを使用して、プッシュが強制されている場合でも、プッシュによるそのような更新を防ぎます。

trueに設定するgit-receive-packと、参照を削除する参照更新を拒否します。これを使用して、プッシュによるそのような参照の削除を防ぎます。

「''を拒否するようにgitリポジトリを設定する方法はありますgit push --forceか? 」も参照してください。

たとえば、これらの設定はGitHubリポジトリでは直接利用できないことに注意してください。

于 2012-09-04T03:55:43.147 に答える
1

確かに(私は思うに)、リモートリポジトリを使用しないと「悪い」状態になることは決して--forceないので、誤ってそれを行うことはできません。

ただし、すでにリモートにあるコミットをリベースすると、ローカルリポジトリは、とにかくリベースのポイントを打ち負かす体操を行わずにリモートリポジトリにプッシュできない状態になる可能性があります。

于 2012-09-04T03:47:16.130 に答える
1

はい。--forceを使用せずに、リベースしてからリモートトラッキングブランチをプッシュすることはできません。

于 2012-09-04T03:59:21.703 に答える
1

「-f」フラグがないと、それは起こり得ません。
しかし、あなたはそれをプッシュする能力なしであなたのブランチで何をしますか?

Rebaseは主にブランチ履歴を適切でシリアル
に保つためのものです。そのコードにマージするのがあなただけの場合、またはローカルでのみ実行している場合は安全です。
それ以外の場合は、リベースする前に、他のすべての寄稿者と同じページにいることを確認してください

于 2012-09-04T04:09:36.800 に答える