3

GitHub にたくさんのリポジトリがあり、完全に別のプロバイダーに切り替えたいと考えています。私は Mercurial のファンなので、Git ブランチにはあまり詳しくありません。残念ながら、git リポジトリをクローンするときは、ブランチを指定する必要があります。

例をより具体的に説明するためにhello、いくつかのブランチ ( masterab) を持つという名前のプロジェクトがあるとします。それを移動してから、元のリポジトリを削除して、新しいリポジトリで作業を続けたいと思います。

したがって、次のリポジトリがあります。

git@github.com:lipis/hello.git

そして、次の場所に移動します。

ssh://lipis@lipis.kilnhg.com/lipis/hello

40 以上の異なるプロジェクトがあり、それらの多くは異なるブランチを持っているため、私の質問は、プロジェクトごとに個々のブランチをプルおよびプッシュせずに、これらの各リポジトリを (すべてのブランチを含めて) 完全に別のリポジトリに移動するにはどうすればよいかということです。


次のような手順があると便利です。

$ git clone git@github.com:lipis/hello.git
$ cd hello
# some black git magic that only Linus understands..
# continue working with the newest repository only
4

1 に答える 1

5

git clone特定のブランチをクローンするのではなく、それらすべてをクローンしてからマスターをチェックアウトします。

これを行う最も簡単な方法は、単にリポジトリを新しい場所にプッシュすることです--mirror。反対側からクローンすることもできます。フォルダをコピーすることもできます。

どのように機能するかを詳しく説明するために、ブランチ、、およびを持つgit cloneリポジトリからクローンを作成するとします。次に、新しいリポジトリでブランチ、、、およびを取得し、その新しいリポジトリでの独自のコピーを取得するように分岐できます。originmasterabmasterorigin/masterorigin/aorigin/bgit branch a origin/aa

githubリポジトリからプッシュするのは難しいかもしれないので、おそらくそのまま使用する必要がありますgit clone --mirror(これにより、すべての参照が自動的に設定されます)。これは、サーバーに完全にアクセスできることを前提としていsshます。そうでない場合はgit clone --mirror、3 台目のマシンからgit push --mirrorサーバーに移動する必要がありsshます。

于 2013-04-14T12:37:36.523 に答える