15

オリジン/ブランチがローカル ブランチと同期していないという問題が発生しました。以下を参照してください。

私のコミット履歴

ローカルの「ステージング」ブランチからオリジン/ステージング ブランチに PUSH しようとすると、「拒否されました - 早送りではありません」というエラーが表示されます。

Windows PC の EGit モジュールで Eclipse を使用しています。

ここの別の投稿から、「git push --force origin staging」を使用して問題を解決し、オリジン/ステージング ブランチをローカル ブランチでオーバーライドできることがわかります。

しかし、EGit ではそのオプションが表示されず、これを行うために EGit でコンソールを開く方法がわかりません。

EGit内でこれを行うことができるかどうか誰かが知っていますか?

OK - 私自身の問題を修正しました。オリジン/ステージングにプッシュバックされていないコミットに問題があったようです。ブランチマーカーをリセットしますが、後で再コミットするためにローカルの変更を保持する「git reset XXX : without --hard」の使用に関する概要をここで見つけました。

ありがとう、ジェイソン

4

3 に答える 3

5

リモート ブランチを上書きして、それらのコミットをすべて失いますか?

ローカル ブランチにないリモート ブランチにコミットがある場合は、プッシュする前にそれらをローカル ブランチにマージする必要があります。

たとえば、ローカルstagingブランチでは次のようにします。

git merge origin/staging

ただし、確信がある場合は、プッシュ refspec の「強制更新」オプションを確認することをお勧めします。

到達するのは少し複雑ですが、EGit ユーザー ガイドでは、 Pushing to other Repositoriesについて説明しています。また、「Force Update」オプションについて言及した特定のセクションは、Push Ref 仕様のセクションにあります。

編集 0:失敗したマージに関しては、競合が発生するのではなく、完全に失敗するマージにまだ遭遇していません。既知の問題である可能性があります。

于 2012-09-06T14:33:35.300 に答える
0

強制プッシュを行うとorigin/staging、欠落している Location: ヘッダーの文字列を修正した後に追加されたものがすべて失われ、他のすべてのブランチが壊れます。私はそれがあなたが望むものだとは思わない。最初にプルを実行すると、プッシュが正常に機能します。

于 2012-09-06T14:26:26.480 に答える