1

codebasehq.comでgit履歴をあるリポジトリから別のリポジトリに移動する適切な方法を知る必要があります。状況:

  • codebasehq.comにリポジトリがあり、次のようなパスで「古い」と呼んでいます。mycompany.codebasehq.com/projects/OLDNAME/repositories/PROJECTNAME
  • 古いレポジトリでいくつかの開発を行った後、チームはこのレポジトリが実際にはcodebasehq.comの別の場所にある必要があることに気付き、「古い」レポジトリのファイルだけを使用して「新しい」レポジトリを実行し、にプッシュしましたmycompany.codebasehq.com/projects/NEWNAME/repositories/PROJECTNAME。したがって、現在、新しいリポジトリには、古いリポジトリのすべてのファイルを含む1つの(初期)コミットしかありませんが、古い履歴はまったくありません。

古いリポジトリから新しいリポジトリに履歴を戻したいです。ここでリベースとグラフトについて読みました:あるGitリポジトリを別のリポジトリにリベースする方法は?そして、2つのリポジトリを1つに移植することに成功しました。

私が知る必要があるのは、この新しいリポジトリを、すべての古い履歴を含むリベース/グラフトされたリポジトリによる1つの初期コミットに置き換える方法です。この間違った新しいリポジトリを削除して最初から再作成する必要がありますか、それとも特別なフラグを付けてプッシュする必要がありますか?

UPD:mycompany.codebasehq.com/projects/NEWNAME/repositories/PROJECTNAME完全な履歴(古い+新しい)を持つブランチを名前の付いた新しいブランチとしてプッシュしようとしましfullhistoryたが、エラーが発生しました:

bash-3.2$ git push codebasehq fullhistory
Counting objects: 104, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (74/74), done.
Writing objects: 100% (74/74), 1.74 MiB, done.
Total 74 (delta 36), reused 5 (delta 0)
fatal: unresolved deltas left after unpacking
error: unpack failed: unpack-objects abnormal exit
To git@codebasehq.com:mycompany/project/repo.git
 ! [remote rejected] fullhistory -> fullhistory (n/a (unpacker error))
error: failed to push some refs to 'git@codebasehq.com:mycompany/project/repo.git'
4

1 に答える 1

1

次のことを試すことができます。

  • git clone OLDREPO
  • git remote add new NEWREPO
  • git fetch new

master新しい履歴が入っている間に古い履歴が入っているはずですnew/master

  • git checkout new/master
  • git rebase -i master

new/masterこれにより、 からにすべてを移植するインタラクティブなリベースが開始されmasterます。おそらく、新しいコード (当時の作業の単純なコピー) から最初のコミットを削除したいので、表示されるエディターで該当する行を削除する必要があります。残りは に設定する必要がありますpick

于 2012-11-19T15:14:02.230 に答える