1

新しい機能をマージしたいメインライン リポジトリがあります。これらの機能は、このリポジトリのコピーで開発されました。このリポジトリが作成された方法は、単純に git init を実行し、そこにすべてのコピーをドロップすることでした (つまり、メインラインからの履歴はありません。最初のコミットはすべてのコピーです)。機能リポジトリを新しいブランチとしてメインライン リポジトリに持ち込むことができることはわかってboth addedいますが、両方に変更が加えられたファイルに対して競合が発生しているようです。また、履歴がフィーチャー リポジトリからメインライン リポジトリに引き継がれるかどうかもわかりません。単一の大規模なコミットと見なされますか? 以前の間違いにもかかわらず、これをコーシャの方法で行う方法はありますか?

4

1 に答える 1

1

「新機能」リポジトリの作業を開始してから、「メインライン」リポジトリでコミットしたようです。この場合、現在のコミットではなく、新しいリポジトリを開始したコミットからメインライン リポジトリにブランチを作成する必要があります。

---o---o---o  mainline
    \
     o---o---o  new features

何かのようなもの

cd mainline
git checkout -b new-features <origin commit for new features>
git remote add new-features ../new-features

そこからgit rebase/ git merge/git cherry-pick好きなようにできるはずです。また、今後は、あなたがしたことをしないでください。「分岐」したい場合は、 を使用しますgit branch

于 2013-01-07T15:57:42.873 に答える