Gitリモートリポジトリを別のサーバーへ移行する方法

Gitリモートリポジトリは、インターネット、あるいはローカルネットワーク上に存在するプロジェクトのことです。ここではRaspberry Pi3にあるGitリモートリポジトリをAWSへ移行するケースを例に、Gitリモートリポジトリを別のサーバーへ移行する方法について解説していきます。

Gitリモートリポジトリを移行する

Raspberry Pi3

bash


$ mkdir repository

# ~/.gitconfig: 特定のユーザーに対するGitの設定ファイル
$ cp ~/.gitconfig repository

# swift: 複数のGitリモートリポジトリが含まれている。
$ cp -r swift repository

$ tar cvf repository.tar repository
$ scp repository.tar git@geisterhacker.com:/home/git
scpコマンド
scpコマンドはSSH接続を利用して、リモートマシン間でファイルをコピーする。 SSH接続を利用する方法は下記参照。
SSH接続で鍵認証を利用する方法

AWSサーバー

bash


$ tar xvf repository.tar
$ mv repository/.gitconfig ~

クライアント

bash


# リモートリポジトリを変更
$ git remote set-url origin git@geisterhacker.com:/home/git/hoge.git

Xcodeでgit pushを行う

「Source Control」→「Push...」をクリックする。 「Push」ボタンを押下する。 Authentication:として「SSH Keys」を選択し、Public KeyにAWSサーバーの公開鍵、Private KeyにAWSサーバーの秘密鍵、そしてPassphraseに鍵作成時に設定したパスフレーズを入力し、「OK」ボタンを押下する。
Public KeyとPrivate keyの両方を設定しないと接続に失敗してしまうので注意。