web-dev-qa-db-ja.com

プッシュは新しいリモートヘッドを作成します! (マージするのを忘れましたか?Push -fを使用して強制します)

OK私は少しグーグルを持っていて、同じメッセージを見つけましたが、人々がそれを持っているさまざまな方法を見つけたので、解決策を見つけることができません。私はmecurialが初めてなので、これを正しく行っていることを確認したいです。

したがって、上記のエラーメッセージが表示されます。開発サイトとライブサイトがあり、コードをコードベースにプッシュしようとしています。

しかし、昨日、私は誤ってhg addをしました。これは、やりたくないすべてのメディアを追加しました。コードベースからすべてのメディアファイルを削除してから、変更をコミットしてプッシュすることにより、元に戻しました。それで今日、CSSファイルといくつかのテンプレートに変更を加えました。変更をコミットしてプッシュしましたが、hg Pushを実行すると、上記のエラーが表示されます。

Hgログを実行しましたが、クリーン/新しいブランチ/プロジェクトであるため、コミットは6つしかありません。何か助けていただければ幸いです。正しく説明していない場合は申し訳ありません。

69
JDavies

これは「エラー」メッセージではありません。それは完全に正常な状況です。そのメッセージは、「ねえ、あなたが仕事をしている間に他の人がそのリポジトリに新しい仕事をプッシュしました。おそらくあなたは自分の仕事を自分の仕事に統合する必要がないので自分の仕事を自分の仕事に統合すべきですか?」

最初に:

hg pull

そして次に:

hg merge

ちなみに、実際にhg revertコマンドを使用した場合に行ったrevertは、これらのファイルを履歴から削除しなかったため、おそらく履歴はかなり大きくなります。

Mercurial book の最初のいくつかの章を読むことを検討してください。これらの状況を非常によくカバーしています。

68
Ry4an Brase

競合する変更をキャンセルする

hg outgoing

プッシュされていないコミット/競合する変更を含む行が表示されるはずです。変更セットのリビジョンを検索します。ここに64

searching for changes
changeset:   64:1830948c246e

それから

hg strip 64
19
Woody

これは私のために働いた。

hg Push -f

より多くのコマンドについては、試してください

hg help Push
15

TortoiseHgでは、これを行うことができます。

1 =>ファイルをコミットする

2 =>コードをプッシュする新しいブランチに移動します

3 =>このブランチで、Mergeを開発して実行します

4 =>エラーなしでコードをプッシュします!

1
Kamil Naja

ワークベンチを使用して変更をプッシュする場合は、最初に発信変更を検出することができます。添付の​​画像を参照してください

enter image description here

これにより、何をプッシュするかについての情報が得られます。私の問題は、古いdraftがプッシュされるのを待っていたことです。古いドラフトでstripを実行したら、プッシュを続行できました。

0
Akbar Badhusha

Mercurialを使用する最良の方法-フォルダーにgit initを作成します。そして、gitをローカルで使用します。 gitなどにマージします。そして、Mercurialを使用してプッシュバックします。これがMercurialを使用する最も簡単な方法です。それ以外の場合、Mercurialは単に機能しません。

0
Arkady