git リポジトリ移動

履歴

  • 2021-11-01 高橋芳幸 新規作成

目的

テキトーに作ってしまった作業ディレクトリを兼ねた git リポジトリを, 作業ディレクトリのない bare リポジトリとして作業ディレクトリから 分離したい. (の記録)

旧リポジトリ (bare でない) /work02/yot/work/radmodels 新リポジトリ (bare リポジトリ) /work02/yot/work/git_repos/radmodels.git

作業

移行先(空)リポジトリを作成

at /work02/yot/work/git_repos

$ mkdir radmodels.git
$ cd radmodels.git
$ git init --bare

移行元リポジトリを一時的にミラークローンする

この作業は不要なのかもしれない. ここではとりあえずやっておく.

at /work02/yot/work/zzztmpgit

$ git clone --mirror --bare /work02/yot/work/radmodels radmodels.git

ミラークローンしたリポジトリから新リポジトリに push

$ cd /work02/yot/work/git_repos/radmodels.git
$ git push --mirror /work02/yot/work/git_repos/radmodels.git

新リポジトリの設定

作業ディレクトリの remote を変更

$ cd /work02/yot/work/radmodels
$ git remote add origin /work02/yot/work/git_repos/radmodels.git
$ git remote -v
origin  /work02/yot/work/git_repos/radmodels.git (fetch)
origin  /work02/yot/work/git_repos/radmodels.git (push)

作業ディレクトリの remote に追加 (複数にする)

$ cd /work02/yot/work/radmodels

$ git remote -v
origin  /work02/yot/work/git_repos/radmodels.git (fetch)
origin  /work02/yot/work/git_repos/radmodels.git (push)

$ git remote add <name> <host>:<path>
$ git remote -v
<name>        <host>:<path> (fetch)
<name>        <host>:<path> (push)
origin  /work02/yot/work/git_repos/radmodels.git (fetch)
origin  /work02/yot/work/git_repos/radmodels.git (push)

push

$ git push origin master

$ git push <name> master

二つ目の引数で push 先を指定.

お試し

at somewhere

$ git clone -v /work02/yot/work/git_repos/radmodels.git

片付け

一時的なクローンは削除してよい

$ rm -rf /work02/yot/work/zzztmpgit/radmodel.git

参考ページ