私は自分の現在の状況を簡潔に説明するために最善を尽くします、そしていくつかのアドバイスに最も感謝します。
今朝、コードの大きな機能ブランチにマージしましたが、重大なエラーが発生したことが判明しました。それを元に戻すために、私の同僚はGitHubでマージ(いくつかのコミットがありました)を元に戻し、プルした後、すべてが順調に見えました。
機能ブランチにいくつかの調整を加えた後、それが再び機能することを確認したかったので、(いつものように)機能ブランチで「gitmergemaster」を使用してすべてが最新であることを確認しました。
驚いたことに、その結果、マスターリポジトリにマージする必要のある新しいコードがすべて削除されました。
これは、ブランチで発生した復帰によるものですか?gitログを見ると、すべてのコミットがまだ残っていることがわかります。さらに奇妙なことに、githubのプルリクエストでは、diffに元のコミットが表示されず、元に戻してから変更したものだけが表示されます。
誰かが私がこれを理解するのを手伝ってくれる?
一部の人々が単に元に戻すことを提案していることは知っていますが、私が行った変更はコードの多くの構造を扱っているため、クリーンに戻す必要があります。
私はこれとまったく同じ問題に一度遭遇しました。うまくいった私の解決策は、マスターを私のブランチにマージする前に「元に戻す」ことでした。
それはあなたが持っている新しい修正を含むあなたのすべての変更をあなたに残すことです。
git checkout master
git checkout -b master-with-revert-revered
git revert <revert commit id>
git checkout fixed-branch
git merge master-with-revert-revered
その後、固定ブランチは問題なくマスターに直接マージ可能になります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加