トップへ戻る
BLOGS

Git、GitHub を使った実務作業 その①

Git、GitHub を使った実務作業 その①

エンジニアとして社会に出た際に必ずと言っていいほど使用するツールが「Git」「GitHub」です。
今回はそんな「Git」「GitHub」を利用するのに必要なターミナル操作Gitコマンドやそれにまつわる用語解説、GitHubを利用したソーシャルコーディングについてふれて行こうと思います
また今回は、Mac環境を使用した解説になるためWindowsでの操作方法とは若干異なることをご容赦ください

GitHubってなに??

GitHubとはソースコードを共有することができるWebサービスです
多くのオープンソースのソフトウェアがこのGitHubでソースコードを公開しておりいつでも誰でもその内容を確認することができます
私が使用しているWordPressももちろんこれを使用しており、世界中のプログラマーがそのコードに改変を行っています。

このGitHubではソースコードで構成されるものであれば何でも公開することができ、たとえばHTMLファイルだったりJavaScriptファイルだったりデータファイルという括りではWEBデザイナーのデザインデータなども上げることがあるようです。

まずはGitHubでアカウント登録をしよう

まずはGitHubのウェブサイトにアクセスして表示されたページからアカウントの登録をしましょう

GitHub https://github.com/

登録する内容としては以下です

  • 「Username」にはアルファベットのハンドルネーム
  • 「Email」には、利用するメールアドレス
  • 「Password」には、利用するパスワード

登録画面などの詳細は年代によって変わってしまうため、ここでは紹介しませんが基本的に「Continue」ボタンで進み、アンケート画面が出てきたも「skip this step」ボタンでスキップ。登録したメールアドレスにメールが届くのでそのメール内容の「Verify email address」ボタンを押せば登録は完了すると思います

プロジェクトのコードをフォークしてくる

GitHubからコードをフォークしてくることで、会社のプロジェクトのコードを編集できるようになり、
プロジェクトに参加するということをしてみましょう。

まずは私の運営しているサイトのリポジトリ(データ置き場)があるので、これを会社のプロジェクトのコードだと思ってフォーク(コードファイルのコピー)してくるところからはじめてみます

https://github.com/ojakomaru/git-study

GitHubにログインした状態で上記のURLにアクセスしてください
表示された画面の右上に「fork」ボタンがあるのでこちらをクリックしてみましょう

githubのforkボタン画像

少し待つと画面が更新され自分のリポジトリにコピーされます
フォークされたものは次のURLページになっているはずです

https://github.com/${あなたのusername}/git-study

${あなたのusername}の部分はGitHubに登録したときに設定したハンドルネームになっているはずです
そして新たなリポジトリが作成されたはずなので画面の左上には、現在のリンクを示すため、
「${あなたのusername}/git-study」となっているはずです

ではプロジェクトの作業を始めるために、あなたの作業環境にこのリポジトリをcloneしましょう

GitHubを使用したローカルリポジトリの作成

あなたの作業環境に先程コピーしてきたリポジトリの内容を反映させるためには、ターミナルから先程のリモートリポジトリ(GitHubのリポジトリ)にアクセスして先程のコードファイルをclone(ローカルリポジトリにコピー)する必要があります

そのためにやるべきことは以下です

  • Gitのインストール(Macは不要のハズ)
  • 作業ファイルの作成
  • 公開鍵、秘密鍵の生成
  • GitHubサイトに公開鍵を登録
  • clone(リポジトリのコピー)

Gitとは

Gitとはバージョン管理を行うソフトウェアです。バージョンとは一度変更があるたびに更新される版名のことです。

端的に説明すると、みなさんが書いたコードファイルを「リポジトリ」というデータ置き場で管理し、ファイルに変更があった際にそれを記録するというものです。

リポジトリに変更を加えることを「コミットする」といい、Gitはこのコミットが行われるたび新たなバージョンをハッシュ(16進数の値)を使って生成し管理しています。
ただしGitは本来コマンドラインツールであるため、プログラマーさんが大好きないわゆる「真っ黒な画面」にコマンドを打ち込んでコンピュータを動かす動作が必要です

SSHの公開鍵をGitHubに登録しよう

GitHubへはSSHを使って通信を行うことが一般的で安全です
SSHは、Secure Shellの略称で、暗号化通信を行う際の認証で公開鍵認証という認証方法で認証できる為これを使用します。

公開鍵認証

公開鍵認証とは、「公開鍵」と「秘密鍵」と2つの情報を使った認証方法です。

公開鍵と秘密鍵を作り通信したい相手に公開情報を渡します。秘密鍵は自分が秘密にしておきます。

相手と通信する際に、相手は公開鍵を使って情報を暗号化し、受け取る自分は秘密鍵を使って情報を復号化します。この方法を使うことで、パスワードの推測による攻撃からアカウントを守ることができます。とても安全ですね。

SSHの公開鍵と秘密鍵の作成

ではSSHで公開鍵認証を行うために、公開鍵と秘密鍵を作成して行きます
Macのターミナルを開いて以下のコマンドを入力します

$ ssh-keygen

なにやらググるといろいろなオプションをつけているものを見かけますが、これでもセキュリティ上問題ないと思います
不安な方はいろいろなオプションがあるためご参考ください

上記のコマンドを入力すると次のように表示されます

$ Generating public/private rsa key pair.
$ Enter file in which to save the key (/Users/ojako/.ssh/id_rsa):

作成されるファイル名を尋ねられますが、デフォルトで良いのでのエンターキーを押して進みます

次にこの鍵を利用するためのパスワードを求められるため、入力し、確認用として再度入力します。
入力がうまくいくと、フィンガープリントという鍵を簡略化したものと、鍵を表すアスキーアートで表現された画像情報が表示され双方の鍵が作成されました
鍵がちゃんと生成されたかコマンドをうって確認します

ls ~/.ssh

すると以下2つのファイルが生成されているはずです

id_rsa  id_rsa.pub

このファイルの内「.pub」拡張子がついている方が公開鍵になります
ではこの公開鍵をGitHubに登録しましょう

公開鍵をGitHubに登録

.pub拡張子がついている公開鍵をコピペするためコンソールに表示したいと思います
以下のコマンドを入力します

cat ~/.ssh/id_rsa.pub

すると公開鍵の内容が表示されます(以下実行結果の抜粋)
実行内容をコピーしておきます

ssh-rsa AAAAB3NzaC1yc2qXUEHaX4y3b5zB..............= Ojako Mac

GitHubサイトを開いて、ログイン後の右上のアカウントアイコンのプルダウンを開き「Settings」をクリックしましょう

GitHubサイトのSettingsボタンをクリック

開いたページの左側のパネルから「SSH & GPG keys」という項目を選択し「New SSH key」ボタンをクリックしてAdd Newページが表示されたらkeyの項目に先程コピーした内容を貼り付けていきます

Titleの項目はなんの鍵かわかるように端末の名前をつけるのが一般的です
注意点としては必ずcat ~/.ssh/id_rsa.pubで表示されたkeyを入力してください
できたら、「Add SSH key」ボタンをクリックして登録を完了します
これでGitHubとあなたのマシンがSSHを利用した暗号化通信ができるようになりました。

clone(リポジトリのコピー)

これでGitHubとGitを連携させる準備が整いました。
GitHubのリポジトリをコピーして、あなたのマシンの中にもGitHubのようなリポジトリをつくってみましょう。
この工程をGitではclone(クローン)と呼びます。

先程のフォークしてきたhttps://github.com/${あなたのusername}/git-studyにアクセスして緑色の「Code」ボタンをクリックしてみましょう

git-studyリポジトリの画面

そうしたら「Clone」というタブが開くため、その中の「SSH」として表示されるコードをコピーしておきましょう

ターミナルで作業ディレクトリに移動しておきましょう

$ @OJAKO-is-MacPro ~ % cd ~/Desktop 

そしたら、続いて作業用のフォルダを作成し、そこに移動します
git-studyフォルダを起きたい場所に移動すればOKです

@OJAKO-is-MacPro Desktop % mkdir git-test
@OJAKO-is-MacPro Desktop % cd git-test

以下のコマンドを実行しましょう

git clone git@github.com:${あなたのusername}/git-study.git

もしパスフレーズを求められたら先程SSHkeyを作成したときに設定したパスを入力します
これで準備した作業ディレクトリにリポジトリの内容がコピーされました
確認のためにファイルを見てみましょう

ls ~/Desktop/git-test/git-study 

これでプロジェクトフォルダの内容が確認できれば成功です

プロジェクトのコードの更新を受け取りたい

今後、プロジェクトをメンバーで進めるわけですから、GitHub上でコミット(ファイルの更新)があった場合にはプロジェクトのコードの更新を取得しなければいけません。
これにはリポジトリとなっているディレクトリ内で次のコマンドを実行することで、最新の変更を受け取ることができます

git pull origin main 

Already up to date.と返ってくる場合はすでに最新ですよ〜というメッセージです

自分のマシンのことを「ローカル」と呼び外部にあるマシンのことを「リモート」といいます
今回の例でいうとGitHub上のリポジトリが「リモートリポジトリ」、先程cloneしてきてあなたのマシンにコピーしたものが「ローカルリポジトリ」です

リモートリポジトリの変更をローカルリポジトリに取り込むことをpullするといいます。
英単語のpullの「引っ張る」という意味から来ているようです

gitコマンドについて

上記のコマンドを例に少々gitコマンドについて解説していきます
Gitはこのように「git」を最初に入力しその後ろにサブコマンド(この例だとpull)を入力します。
そして、さらにその後ろに引数を指定します

git <subcommand> [<options>] [<repository> [<refspec>...]]

大抵のgitコマンドはオプションに「-h」をつけると、ヘルプとして上記のようなヒントをくれます
<subcommand>にはサブコマンドを入力します(pull, branch, clone…..)

今回の例ではオプションは指定していませんが「origin」はデフォルトのリモートリポジトリ名なのでこれを<repository>に指定しています。
また、<refspec>「branch(ブランチ)」という概念なので次回の記事にて説明します

長くなってきたので今回は一旦この環境構築編で区切ります

お疲れさまでした。

コメントをお待ちしております

お気軽にコメントをどうぞ。

CAPTCHA