【Git】大きくなったリポジトリの一部を新しいリポジトリ移行する

ロリポップ!レンタルサーバでGitを使ってみた

この記事は現役ウェブディベロッパーがわかりやすさにこだわって作成しました

WordPressのテーマに少しずつ手を入れていますが、修正するたびにバックアップが煩わしいです。

テーマやプラグインを変更すると突然不具合が発生することがあるので、バージョン管理しましょう。Gitを使えば、いつでもどの世代の更新前の状態に戻すことができます。サーバーに置いているのでチームで作業もできます!

この記事を読むとできるようになること
  • ロリポップ!レンタルサーバーでGitが使えるようになります!
  • 他のサーバーで使っていたGitのプロジェクトをロリポップに移行できるようになります!

はじめに

前回の記事でロリポップレンタルサーバーにGitを移行したときのことを書きました。

もう半年以上ロリポップでGitを運用していますが今のところは順調です。レンタルサーバーは安くで容量も大きいのでいくら使ってもそんなに課金されることもなく本当に助かります。

ところで、今回はこのサイトでも利用しているWordPressのプラグインが外でも使っていて頻繁にバージョンアップをしているので、そこだけ切り出して別のリポジトリに移すことにしました。

サーバー側の設定

SSH接続

ロリポップ管理画面でSSH接続情報を確認してTERA-TERM等のターミナルソフトでロリポップサーバーに接続します。  

リポジトリの作成

まず新しくリポジトリ情報を置くためのディレクトリを作成します。その後、既存のリポジトリから切り出したディレクトリをここにPUSHします。

このあたりは前回と同じです。

git init --bare --shared

を入力します。 正常に終了すると、リポジトリのフルパスが表示されますので忘れないように保存しておきます。    

切り出したいリポジトリを新規クローンを作成する

今回はSSHでGITリポジトリにアクセスするので事前にSSH接続ができることを確認しておきます。

接続は公開鍵をして、秘密鍵はユーザディレクトリの.ssh直下に置くか、.ssh/configファイルへの設定が必要です。

ssh://{SSHユーザーアカウント}@{SSHサーバー}:{ポート番号}{リモートリポジトリのフルパス}

接続情報を、ユーザディレクトリの.ssh/configに設定してある場合は、{SSHユーザーアカウント}@{SSHサーバー}:{ポート番号}を置き換えることができるので簡略化できます。

ssh://{configで設定した接続情報名称}{リモートリポジトリのフルパス}

ロリポップの場合、SSH接続情報は次のようになります
ssh://{configで設定した接続情報名称}ロリポップ内のGITディレクトリ絶対パス

クローンコマンドは以下のとおりです

git clone ssh://{configで設定した接続情報名称}ロリポップ内のGITディレクトリ絶対パス {新規に作成するディレクトリ名}

新規に作成するディレクトリ名は、指定しない場合はリモートリポジトリのフォルダ名になります。今回は新しく別のディレクトリを作成ために既存のものと別に作成するためディレクトリがかぶらないようにします

フォルダが存在するブランチにチェックアウトする

git checkout -b ローカルブランチ名 origin/リモートのブランチ名

複製したリポジトリから対象以外の情報を削除する

git filter-branch --prune-empty --subdirectory-filter 対象フォルダのパス

リモートリポジトリを変更する

git remote set-url origin 新しいリモートリポジトリのURL

リモートURLが変更されたことを確認する

git remote -v

新規リモートリポジトリに作成する

先に作っておいたリモートリポジトリに下記のコマンドでPUSHします。

git push -u origin "ブランチ名"

git push は、特に初めてブランチをPushするときに「-u」オプションをつけることを推奨されます。このオプションにより、push 先のリモートブランチが、push 成功時に上流ブランチとして設定されます。

PHP/Javascript/WORDPRESS案件全般承ります

この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました