7

私は古い Git リポジトリを持っていappます。それから、1 年後、アプリをゼロから再構築したいと思ったので、新しいレポを作成し、それをapp-2.

今、新しいレポではなく、新しいブランチか何かを作成する必要があることに気付きました。これは、の履歴をapp-2上に移動してから削除し、 +のすべての履歴が含まれるようにしappたいからです。app-2appappapp-2

これは可能ですか?

アップデート:

(ディレクトリを除く)appすべてのファイルを削除してコミットすることにより、レポを「リセット」しようとしました。それで:app.git

cd ~/Projects/app-2
git format-patch --stdout --root master > ../app/app-2-patches.txt
cd ../app
git am app-2-patches.txt

しかし、ブランチを持っていた場所で競合が発生しましたapp-2

app-2の履歴のブランチ構造を維持したまま、からのコミットを適用することはできますapp-2か?

4

2 に答える 2

1

これには git のグラフト ポイントを使用できます。最初に の履歴をappリモートから取得してから、この回答app-2などの指示に従います。

于 2012-04-27T17:22:56.657 に答える
0

ステップ 1 は、1 つのレポで 2 つのアプリを取得することです。ステップ 2 は、適切な方法でそれらをマージすることです。

ステップ 1 では、app-2 のすべてのリポジトリ ブランチをアプリ リポジトリのブランチにプッシュします。

$ cd /path/to/app-2
$ git remote add app-repo /path/to/app
$ git push app-repo master:app-2-master     # master in app-2 goes to app-2-master in app repo
# repeat for other branches in app-2

app リポジトリには、そのすべてのブランチとすべての app-2 ブランチがあります。app-2 を app から派生したものと見なす (したい) としましょう。次に、 app-2 のすべてを app で次のようにリベースします。

$ cd /path/to/app
$ git checkout app-2-master
$ git rebase master

これには競合を解決するための多くの作業が必要になる可能性がありますが、git も多くの作業を行ってくれます。

于 2012-04-27T17:51:41.487 に答える