だいたい github のドキュメントに掲載されている通りの手順でオッケー。
注意するのは、 --bare
オプションでローカルに clone したディレクトリに移動すると以下のような警告が出てくること。
fatal: this operation must be run in a work tree
bare で clone してると出るんでしたっけ、とにもかくにも今回はなんか変更を加えるわけではないので fatal 出ても無視して作業して大丈夫です。また、チェックアウト先は通常の作業ディレクトリがあるとぶつかった時悲しいので、 ./tmp_${リポジトリ名}/
など、明示的に一時的な作業ディレクトリを指定したほうがよさそう。
- コピー元になるリポジトリから
git clone --bare ${コピー元リポジトリ URL} ./tmp_${リポジトリ名}
で clone した後、cd $_
などで移動しておく - 新しいリポジトリを作成する
- で作成した新しいリポジトリに
git push --mirror ${新しいリポジトリ URL}
で push する
- で作成した新しいリポジトリに
clone
pull
push
などが、新しいリポジトリに対して実行できるか確認する- 作業に使った
./tmp_${リポジトリ名}
を削除して終了
ちなみに、新しいリポジトリ作る時ちょっと悩んじゃったんだけど、ハイフンとアンダースコアはどう使い分ければいいのか? という点。無意識的に、ハイフンは独立した単語同士をつなぐ、アンダースコアは連続した単語として扱う、という使い方をしていたのだけど、だいたいその理解でよさそう。ダブルクリックした際の選択範囲によって独立性が判断できる、という話がたしかにな、となった。