gitのリモートリポジトリを変更した

以前のエントリで設定した自動プッシュプル運用のgitリモートリポジトリを別のクラウドに移動した.

livingdead0812.hatenablog.com

livingdead0812.hatenablog.com

理由は単に無料のOneDriveが容量不足になってきたから.

ちなみに移動先の候補としては,

  • Dropbox(無料版): 合計容量不足
  • box sync(無料版): 単一ファイルのサイズ制限が小さすぎる (<250MB)
  • iCloud Drive(50GBプラン): 未検討(微妙そう)
  • Google Drive: 未検討(こっちに移動するかも)

で,結局職場が提供してくれているOneDrive for Businessにした.理由は容量にかなり余裕がある(1TB中60GBくらいしか使っていない)ため.

なおまったく最善の選択ができていないが,この運用をするにあたって最大限重視すべきなのは,変更してから変更をアップロード開始するまでの時間の短さだと思う(この条件ではOneDriveは最善どころか最悪に近く,経験の限りではDropboxがもっとも優れている).現状,iCloudGoogle Driveがこの条件でみてどうなのかが十分検討できていない.Google Driveは悪くなさそうだが,iCloudは割と同期のトラブルが多いので,あまり向いていないような気がする.

ただ,ストレージに余裕があればトラックしたいファイルはいろいろあるし,トラックしなくてもまとめて置いておくと楽なものがいろいろあるので,結局はストレージの余裕を優先することになると,iCloudGoogle Driveも十分な容量というわけにはいかず,それなりに支払うならDropboxがいいような気がするので,これら二つに移行することはないかもしれない.なんにせよリモートの移動自体は以下に示すようにかなり簡単なので,気軽にいろいろ試してもいいように思う.

ちなみにiCloudの50GBプランは1ドル/月なので,これくらいなら特に躊躇はないのと,はるか昔にPDFへのアノテーションを共有するためにiPadにインストールしたアプリではiCloudが最も使いやすかったので,容量を拡張してかたっぱしからPDFを突っ込んでいる.このアプリは開発を終了してしまったようだし,もう何年も経つので状況も変わっているだろうから,この条件を優先する理由はもうないのかもしれない.

livingdead0812.hatenablog.com

移動の方法

やることは大きく分けて,新しいリモートを作ってそちらにプッシュするのと,他のデバイスで新しいリモートにプッシュプルする設定をするのがある.

新しいリモートを作って内容をコピーする

まずターミナルでローカルリポジトリに移動し,現在のリモートを確認.

cd path/to/local
git remote -v 
# origin    localhost:path/to/remote/remote.git (fetch)
# origin    localhost:path/to/remote/remote.git (push)

必要ならローカルの状態を最新にする

git pull origin master

ローカルからリモートの情報を削除(リモート自体の削除ではない)

git remote remove origin

新しいリモートを作る

cd path/to/new/remote
mkdir remote.git
cd remote.git
git --bare init --share

このときクラウドフォルダではなくサーバ上に作るのであれば,sshでログインして同様にする.
またGithubなどのgitサービスならこのプロセスは不要.

新しいリモート(まだ空)にローカルをプッシュ

cd path/to/local
git remote add origin localhost:path/to/new/remote
git push origin master

サーバやGithubならlocalhostではなくhttpsなどで場所を指定.

他のデバイスで新しいリモートに接続する

ローカルに移動し,リモートの情報を書き換えて,プル

cd path/to/local
git remote remove origin
git  remote add origin localhost:path/to/new/remote
git pull origin master

最後にログを見て,移行できていることを確認

git log

参考
qiita.com