ログイン
ログイン

KAGOYA CLOUD チュートリアル

第2回
KAGOYA CLOUD で
Git を使ってみた

Gitとは、プログラムのソースコードなどの変更履歴を管理する「バージョン管理システム」です。
また、Gitは「分散型バージョン管理システム」という特徴があり、複数人のチームで共同開発を行う場合に各メンバーの変更履歴を共有管理できます。

Gitでは、プログラムのソースコードや変更履歴は「リポジトリ」と呼ばれるデータベースでバージョン管理を行います。
チームで共同開発する場合は、メンバー全員がアクセスできる場所に共有の「リモートリポジトリ」を用意し、
各メンバーは、ローカル環境(自分のPCなど)の「ローカルリポジトリ」で開発を行い、
変更内容を「リモートリポジトリ」にアップロード(push)したり、
最新の内容を「リモートリポジトリ」からダウンロード(pull)したりすることで、
共同で開発作業を進めることができます。

リモートリポジトリ

「リモートリポジトリ」を簡単に公開できるサービスとして「GitHub」などが有名ですが、KAGOYA CLOUD のサーバーに「リモートリポジトリ」を置くことも可能です。

  • サーバーに Git をインストール

    このマニュアルではCentOS7 のサーバー環境を例に説明します。
    まず、KAGOYA CLOUDのコントロールパネルにログインし、CentOS7でインスタンスを作成します。

    yum で Git をインストールします。

    # yum install git

    Git の初期設定をします。

    # git config --global user.name "kagoya "
    # git config --global user.email kagoya@example.com

    設定した内容を確認します。

    # git config --list
  • サーバーにリモートリポジトリを作る

    Git 用にユーザーを作成します。

    # useradd git

    リポジトリを置くディレクトリを作成します。

    # mkdir -pv /opt/git

    git ユーザーが書き込みできるようにします。

    # chown git:git /opt/git

    git ユーザーに切り替えます。

    # su git

    リポジトリを置くディレクトリに移動します。

    $ cd /opt/git

    共有リポジトリを作成します。

    $ git init --bare newproject
    Initialized empty Git repository in /opt/git/newproject/
  • ローカル環境(PC 側)に Git をインストール

    このチュートリアルでは、Windows PC でGit for Windows を使用します。
    下記のURLからダウンロードし、インストールしてください。

    ■ 参考URL Git for Windows:
    https://git-for-windows.github.io/

    インストールが完了したら、Git Bash(git-bash.exe)を起動します。

    Wordpress CentOS 6 64bit

    この Git 初期設定をします。

    $ git config --global user.name "taro"
    $ git config --global user.email "taro@example.com"
    Wordpress CentOS 6 64bit
  • ローカル環境(PC 側)で公開鍵と秘密鍵を生成

    Created directory '/c/Users/Git Bash(git-bash.exe)を使って、秘密鍵と公開鍵を生成します。

    $ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/taro/.ssh/id_rsa): ←Enter
    Created directory '/c/Users/taro/.ssh'.
    Enter passphrase (empty for no passphrase): ←入力せずEnter
    Enter same passphrase again: ←入力せずEnter
    Your identification has been saved in /c/Users/taro/.ssh/id_rsa.
    Your public key has been saved in /c/Users/taro/.ssh/id_rsa.pub.

    (以下省略)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    生成された公開鍵の内容を表示します。

    $ cat ~/.ssh/id_rsa.pub

    表示された公開鍵の内容(赤枠部分)をコピーします。

  • サーバーに公開鍵を設置

    サーバーに root でログインし、git ユーザーに切り替えます。

    # su git

    ホームディレクトリに移動します。

    $ cd

    git ユーザーのホームディレクトリに .ssh ディレクトリを作成します。

    $ mkdir ~/.ssh

    パーミッションを変更します。

    $ chmod 700 ~/.ssh

    vi エディタで authorized_keys ファイルを作成します。

    $ vi ~/.ssh/authorized_keys

    インサートモードで先ほどコピーした公開鍵の内容を貼り付けます。

    パーミッションを変更します。

    $ chmod 600 ~/.ssh/authorized_keys
  • ローカルリポジトリを作成

    Git Bash(git-bash.exe)を使って、リポジトリを作成するディレクトリを作成します。

    $ mkdir ~/Desktop/newproject

    作成したディレクトリに移動します。

    $ cd ~/Desktop/newproject

    リポジトリを作成します。

    $ git init
    Initialized empty Git repository in C:/Users/kagoya/Desktop/newproject/.git/
    ローカルリポジトリを作成
  • ローカルリポジトリからリモートリポジトリに push してみる

    リモートリポジトリに push

    Git Bash(git-bash.exe)を使って、作成したローカルリポジトリにテストファイルを作成します。

    $ touch sample.txt

    ステージング領域へ反映します。

    $ git add .

    ローカルリポジトリへコミットします。

    $ git commit -m "initial commit"
    [master (root-commit) 707dad9] initial commit
    1 file changed, 0 insertions(+), 0 deletions(-)
    create mode 100644 sample.txt

    リモートリポジトリを"origin"という名前で設定します。
    ※ここでは例としてサーバーのIPアドレスを203.0.113.11とします。

    $ git remote add origin git@203.0.113.11:/opt/git/newproject

    ローカルリポジトリの内容をリモートリポジトリへ反映します。

    $ git push origin master
    The authenticity of host '203.0.113.11 (203.0.113.11)' can't be established.
    ECDSA key fingerprint is SHA256:2Eu1uHhYgdMqBOXyTOsmDTi50TkvMUzEOgvuwrOt8Js.
    Are you sure you want to continue connecting (yes/no)? yes ←初回のみyesでEnter
    Warning: Permanently added '203.0.113.11' (ECDSA) to the list of known hosts.
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 225 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To 203.0.113.11:/opt/git/newproject
    * [new branch]      master -> master
  • リモートリポジトリからローカルに clone してみる

    リモートリポジトリからローカルに clone

    Gitを使用するとリモートリポジトリの内容を別のローカル環境(PC 側)に複製し、開発環境を共有できます。
    ※ここでは仮に同じPCの別ディレクトリに複製できるかテストします。

    Git Bash(git-bash.exe)を使って、リポジトリを複製するディレクトリに移動します。

    $ cd ~/Desktop

    ここでは、newproject2というディレクトリにリモートリポジトリを複製します。

    $ git clone git@203.0.113.11:/opt/git/newproject newproject2
    Cloning into 'newproject2'...
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (3/3), done.

    作成されたローカルリポジトリに移動します。

    $ cd newproject2

    リモートリポジトリを通してファイルが複製されているのが確認できます。

    $ ls
    sample.txt
KAGOYA CLOUD
チュートリアル トップへ