0

この質問は何度も聞かれましたが、状況の解決策が見つからないため、もう一度質問します。マスターとレジデントの 2 つのブランチがあります。私は約 2 か月間、レジデントに取り組んできました。基本的には、フォームの完全な再設計です (入力を避けるための大量の check_boxes、radio_buttons など)。約35コミット。数回ほどマスターに小さな変更を加え、マスターを居住者にマージしました。その後、居住者に満足したら、マスターに切り替え、居住者をマージして、heroku にプッシュしました。

アプリ (実際には、いくつかの JS を含むフォーム) は heroku では動作しません (私のローカルでは動作します)。Heroku をロールバックしたので、アプリをマージしてプッシュする前の状態に戻す必要があります。私は住民ブランチを持っているので、必要なのはマスターからのマージ全体を破棄することだけです。

これは簡単に元に戻すことができるはずだと思いますが、方法がわかりませんでした。

手伝ってくれてありがとう。

4

2 に答える 2

0

マスターの最新のコミットが常駐ブランチのマージであり、アプリを他のユーザーと共有していないと仮定すると、次のことができます。

git reset --hard HEAD~1

そのコマンドは、前の親にロールバックすることを示しています。次に、次のことを行う必要があります。

git push --force

を使用してこれを行うこともできますがgit revert、それには独自の複雑さも伴います。マージ コミットを元に戻す必要があり、後でブランチを引き継ぐ場合は、元に戻してからブランチをマージします。そうしないと、すべてのリビジョンが反映されません。この場合、上で示した履歴の変更を好みます。これは、やり遂げることができれば、よりシンプルでクリーンになるからです。

于 2012-11-20T09:30:29.473 に答える
0

マージをリセットしてからもう一度プッシュできると思います。

git reset --merge: インデックスをリセットし、作業ツリー内の と HEAD の間で異なるファイルを更新しますが、インデックスと作業ツリーの間で異なるファイル (つまり、追加されていない変更があるファイル) は保持します。とインデックスの間で異なるファイルにステージングされていない変更がある場合、リセットは中止されます。

http://git-scm.com/docs/git-reset

于 2012-11-20T06:47:59.003 に答える