2012-01-17 16 views
3

私はリポジトリ "B"に移動する必要のある "A"と呼ばれるリポジトリを持っています。これは履歴を失うことなく、常に "B"上にあったかのようです。履歴付きgitリポジトリを別のリポジトリにエクスポート

フォルダやリポジトリの一部を移動する必要はありませんが、リポジトリの内容を完全に別のものに移動する必要があります。基本的にはリポジトリ "A"の名前を "A"を失うことなく "B"に変更します。

ご協力いただければ幸いです。

+0

なぜ単にgitクローンを使用しないのですか?あなたはいつも完全な歴史をgeht ... – madflow

+0

問題は遠隔レポが拭き取られているので、私は履歴を失うことなく「B」に押し込む「A」のローカルコピーを持っています。 – Flupkear

+0

Flupkear、下記の@ yuriの答えを見てください。それは単純でうまくいきます。 –

答えて

2

AをリモートでBに追加します。git fetch remote_Aをrepo Bで実行すると、履歴全体がインポートされます。

+0

問題は、 "A"のローカルコピーが遠隔バージョンを表していないことです。これは、 "git pull"を実行すると完全に消去される "A"のローカルコピーを持っているため、ローカル前に別のレポに "A"を拭き取り、できるだけ確かではない。 – Flupkear

+0

これは問題ではありません。フェッチを実行すると、すべてのブランチの前に "remate_A"が表示されます。あなたが好きなときにそれらを使用してください。 Gitログ - すべて表示され、特定のものについてgrepすることができます。レポBに何も持っていなければ、ファイルコピーで十分です。 –

+0

ありがとう、私はまだそれの周りに私の頭を取得しようとしています。私があなたをよく理解していれば、新しいフォルダで "B"のクローンを作成し、 "A"を "B"にコピーしなければなりません。 – Flupkear

1

Gitリポジトリはフォルダだけで、あなただけのDIRAからDIRBに、隠し.gitディレクトリを含め、すべてのファイルを、コピーA.

+0

私はこれを試してみました。 "A"を "A-copy"にコピーしてから、git-init、git add-remote 、git commit、git pushを実行しました。私はgitの.configファイルを編集し、両方のリポジトリはそこにありますが、単に "A"定義を削除してもう一度やり直してみてください。 – Flupkear

+0

@Flupkear 'git add-remote'とは何ですか?正確なステップを与えてあなたの質問に編集してください – manojlds

+0

申し訳ありません、私は "git remote add"を意味しましたが、これは単なるテストだったので、これは無関係です。私がよく理解していれば、空の "B"レポをフォルダにクローンし、 "A"フォルダの内容を "B"にコピー&ペーストするだけです。 – Flupkear

1

「を失うことなく、名前の変更」をBにコピーすることができます。

次に、DirB/.git/configを開き、Repoの場所をRemoteRepoAからRemoteRepoBの場所に変更します。ただやる

はその後DIRB内から:

git push origin master 

歴史を持つすべてのコードは、RemoteRepoBに追加する必要があります。私はちょうどGitHubの2 reposでこれをしました。

+0

+1私は同じことをやっている - これは、すべての作成/適用パッチなどの最も簡単な方法を見た。それは私のために働いて、すべてのように見えます - それは何か欠点があるかどうかはわかりません。 –

関連する問題