普段「GitHub」をあまり使用することが無く使用方法をすぐに忘れてしまうので、主に自分用のメモとして「GitHub」を使い始めるための手順を下記の順番で説明していきます。(内容的にはかなり初歩の内容となっています)
- GitHubとは
- GitHubでのアカウント作成
- Gitクライアントインストール(CentOS7)
- SSH鍵登録
- GitHubでリポジトリ作成
- リポジトリのローカルへのコピー(clone)
- インデックス登録(git add)
- ローカルリポジトリへ登録(git commit)
- GitHubへの変更反映(git push)
「GitHub」でリポジトリを作成してから、ロカールリポジトリとしてコピーし変更内容を「GitHub」上のリポジトリへ反映させるまでの流れを簡単に図にまとめてみました。
GitHubとは
簡単に説明すると、バージョン管理システムである「Git」を、インターネット上でホスティングしてくれるサービスが「GitHub」です。
バージョン管理をするメリット
データを更新した際に自動で変更履歴の管理を行ってくれるのが最大のメリットです。
手動で管理を行っていく場合、ファイルの命名規則にバラつきが発生して、どれが本当の最新データなのかが分からなくなってしまったりすることがあります。
もし、こんなファイルがたくさんあった場合、どれが最新のデータなのかすぐにわかりますか?
- file_20181215.txt
- file_20181215_new.txt
- file_20181215_修正後.txt
さらに、手動での管理の場合には更新し忘れといったことも発生する可能性があります。
その他のメリットとしては、変更前の状態に簡単に戻すことが出来たり、変更履歴の調査、変更ユーザや変更理由等を確認することが出来ます。
また、複数ユーザで開発を行っている場合、同じデータを同時に編集してしまっても、片方の編集内容が上書きされて消されてしまうという事を防ぐことが出来ます。
GitHubアカウント作成
まずは、webブラウザで「https://github.com/」にアクセスして、「GitHub」のアカウントを作成していきます。
「Username」「Email」「Passuword」を入力し、「Sing up for GitHub」ボタンを押下します。
botではなく人間であることのチェックがあるので「検証開始」をクリックします。
画面に表示されている矢印をクリックしてメッセージの通りになったら「終了」をクリックします。
プラン選択画面が表示されるので、「Free」が選択されていることを確認して「Continue」ボタンを押下します。
アンケートが表示されますが、「Submit」ボタンを押下することで進むことができます。
メールによる認証
アカウント作成時に登録したメールアドレスに、GitHubからメールアドレスの確認が送られてきますので、「Verify email address」をクリックしてください。
以上で、アカウントの作成は完了です。
gitクライアントインストール
ここでは、CentOS7へ「git」をインストールする方法を説明していきます。
一番簡単なインストール方法は「yum」を使用してインストールする方法ですが、CentOS7に標準で用意されている「git」のバージョンは「1.8.x」という古いものとなっているので、今回は最新の「git」を使用するためにソースからインストールしていきたいと思います。
事前準備
事前に「git」をインストールするために必要なソフトをインストールしておきます。
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc
インストール
ソースはhttps://github.com/git/git/releasesからダウンロードしてきます。
本手順ではソースは「/usr/local/src/」ディレクトリにダウンロードし、「git」のインストール先として「/usr/local/」ディレクトリを指定しています。
# cd /usr/local/src/ # curl -Lo git-2.20.1.tar.gz https://github.com/git/git/archive/v2.20.1.tar.gz # tar xzfv git-2.20.1.tar.gz # cd git-2.20.1 # make prefix=/usr/local all # make prefix=/usr/local install
インストールの後にバージョンの確認を行っておいてください。
# git --version git version 2.20.1
初期設定
「git」のインストールが完了しましたら、次に初期設定として「git」を使用するユーザの「ユーザ名」と「メールアドレスを」の登録を行っていきます。
「GitHub」でアカウント作成した際に登録した「ユーザ名」と「メールアドレス」を設定します。
$ git config --global user.name "ユーザ名" $ git config --global user.email "メールアドレス"
設定した内容は下記コマンドで確認することが出来ますので、設定後に確認しておいてください。
git config --global -l
SSH公開鍵の登録
SSHで「GitHub」に接続する場合、事前にSSHの鍵を作成し公開鍵を「GitHub」に登録しておく必要があります。
SSH鍵の作成
SSHの鍵を作成する際の暗号化方式の種類は色々ありますが、今回は「ed25519」形式で作成し登録を行っていきます。
「ed25519」形式のSSH鍵は下記コマンドで作成することが出来ます。
ssh-keygen -t ed25519
実際に鍵を作成していきますが、途中で入力を求められる箇所はすべて「Enter」キーを押下し初期設定で進めています。
これでパスフレーズが設定されていないSSH鍵が、ユーザのホームディレクトリにある「.ssh」ディレクトリに、秘密鍵が「id_ed25519」公開鍵が「id_ed25519.pub」という名前で生成されます。
$ ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/home/tamohiko/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/tamohiko/.ssh/id_ed25519. Your public key has been saved in /home/tamohiko/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:zesbsHldTqKTHfmhvx39Egl1tQCFAR++Leg1so6h834 tamohiko@dev.server-memo.net The key's randomart image is: +--[ED25519 256]--+ | ..+=o o| | o.. o o| | o . o | | o. +. | | Soo=+o+. | | .++*oOo..| | .ooB + oo.| | .. +E o ...o| | .++..o. ooo| +----[SHA256]-----+
ちなみに、「Enter file in which to save the key」では、生成するSSH鍵をフルパスで指定することができます。
また、「Enter passphrase」では、パスフレーズを設定することもできます。(なにも設定せず「Enter」キーを押下するとパスフレーズは設定されません)
GitHUBへ登録
SSH鍵の生成が完了しまたら、それを「GitHub」に登録していきます。
画面右上のアイコンをクリックして表示されるメニューで「Settings」をクリックします。
「Personal settings」のメニューから「SSH and GPG keys」をクリックします。
「SSH Keys」の右側にある「New SSH key」ボタンを押下します。
SSH鍵を入力する画面が表示されるので、「Title」に何のSSH鍵なのかが直ぐにわかる名前を入力し、「Key」の部分に先ほど作成したSSH公開鍵の内容を張り付けます。
無事SSH鍵の設定が完了すると、登録された鍵の情報が表示されます。
GitHubでリポジトリ作成
右上のアイコンをクリックして表示されるメニューから「Your repositories」を選択します。
「New」ボタンを押下します。
「Create a new repository」画面が表示されるので、「Repository name」欄に作成するリモートリポジトリの名前を入力し、その後に「Create repository」ボタンを押下します。
「SSH」ボタンを押下すると、SSH経由で作成したリポジトリにアクセスするためのアドレウスが表示されるので、メモっておいてください。
ちなみに、アドレスの書式は下記のようになっています。
git@github.com:ユーザ名/リポジトリ名.git
リポジトリのコピー(git clone)
ここからの作業は、「git」をインストールした環境から行います。
作業ディレクトリ(ワークツリー)として、ホームディレクトリに「dev」というディレクトリを作成し、そこにリポジトリを「git clone SSH接続用アドレス」でコピーしてきます。
$ mkdir dev $ cd dev $ git clone git@github.com:servermemo/GitHub-Stady.git Cloning into 'GitHub-Stady'... warning: You appear to have cloned an empty repository.
コピーしてきたリポジトリは下記の通りとなります。
$ ls GitHub-Stady
データの作成
「GitHub」上のリモートリポジトリに登録するためのデータとして「README.md」ファイルを作成します。
$ cd GitHub-Stady/ $ echo "# GitHub-Stady" > README.md
インデックスへ登録
作成した「README.md」ファイルを「git add」コマンドを使用して、インデックスに登録します。
git add 反映するデータ名
「Git」では、作成、編集したデータを直接リポジトリに登録(commit)させるのではなく、一度「インデックス」に登録してからリポジトリに登録するという流れになっています。
先ほど作成した「README.md」ファイルをインデックスに登録します。
$ git add README.md
ローカルリポジトリに登録(commit)
「README.md」ファイルがインデックスに登録されたら、次にローカルリポジトリに登録(commit)します。
インデックスるに登録されているデータをローカルリポジトリに登録する際は、下記のように「git commit」コマンドを実行します。
git commit -m "メッセージ"
実際にローカルリポジトリに「git commit」で登録していきます。
$ git commit -m "First commit" [master (root-commit) c718678] First commit 1 file changed, 1 insertion(+)
リモートリポジトリに登録(git push)
ローカルリポジトリに登録されたデータを「git push」コマンドで、リモートリポジトリに登録させます。
git push origin master
実際にリモートリポジトリに登録してみます。
$ git push origin master Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 227 bytes | 227.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To github.com:servermemo/GitHub-Stady.git
コメント