2

私は巨大なプロジェクトを持っています。私はファイル構造をやり直すように割り当てられたので、開発者を狂わせませんでした。すべてGitHubにあるので、プロジェクトをフォークして変更を加えました。

終了したので、変更を元に戻したいと思います。ただし、再編成を行っている間、他の開発者の一部はマスターリポジトリにコミットしました。移動したファイルが変更されたため、マージできません(Gitはファイルを削除したと考えています)。彼らちょうど新しい場所で、最新です。

再編成されたコードを正常にプルするにはどうすればよいですか?私の唯一の考えは、ローカルリポジトリからすべてのマスターコードを削除してから、新しいコードをコピーパスタして、そこからコミットすることです。しかし、これは悪い習慣だと思います。

更新:この質問によると、 git mv助けていたでしょう。ただし、ディレクトリの変更はすべてすでに行われています。

4

1 に答える 1

2

数日前に同じ問題が発生しました。

これが私たちがしたことです:

  • マスターブランチを新機能ブランチにマージ

    git checkout new-branch
    git merge master
    
  • 新機能ブランチをマスターにマージ

    git checkout master
    git merge -s theirs
    

最初のマージは、新機能ブランチの開発中にすべてのホットフィックスをマスターブランチに適用したままにすることです。戦略オプション(-s)との2番目のマージは、新機能ブランチの変更を強制的に保持することです(多くのコードを削除して変更します)。

マージの詳細については、このトピックを参照してください。さまざまなgitマージ戦略をいつ使用しますか?

于 2013-03-15T10:37:29.360 に答える