1

200 件以上のコミットがある既存の bitbucket リポジトリ A がありました。コードをダウンロードしました (.git ファイルなし)。最初のコミットで追加されたすべての既存のコードを使用して、新しいレポ B を作成しました。次に、レポ B でさらに 150 件のコミットを行います。レポ A には新しいコミットがありません。私はレポ B のみで作業しました。現在の要件は、すべてのコードと履歴 (可能であれば) を含む単一のレポ、またはレポ B の変更を履歴の単一のエントリとして行うことです。3番目のレポCは、AとBを危険にさらしたくないので問題ありません.

4

3 に答える 3

4

私があなたを正しく理解していれば、あなたは現在持っています

  • B の最初のコミットとしての A の最新の状態
  • それに加えて、Bでも多くの作業が行われます

そして、あなたはCを取得したい

  • Aのすべての歴史
  • その上に B のすべての履歴 (もちろん最初のコミットを除く)。

それが正しいと仮定すると、これはパッチを介してそれを行う1つの方法です:

A の新しいクローンを取得します。

$ git clone A C

B の最初のコミット (A からのものを含む) のハッシュが何であるかを確認します。

$ cd B
$ git log --oneline|tail -1
1234beef Initial commit

引き続き B で、残りのすべての作業をパッチとしてエクスポートします。

$ git format-patch 1234beef..HEAD

.patch(これにより、Bに一連のファイルが生成されます)

これらすべての変更を A の新しいクローンにインポートします。

$ cd C
$ git am ../B/*.patch

これで完了です。

于 2013-10-04T13:48:38.100 に答える