【チュートリアル付き】gitに初挑戦してみようぜ!〜③初めてのGigHub〜
はじめに
こんにちは、よしデブです。
やっときました、git最終回。
今回は GitHubを使ったコードのリモート管理 を体験していただきたいと思います。git初めての方はもちろん、便利なオプションも紹介したいと思うので、経験者にも参考になれば幸いです。
前回のおさらい
前回の記事はこちら。 yoshidev523.hatenablog.com
前回は主に以下のことを体験してもらいました。
- ブランチを切る
- ブランチを切る恩恵を感じる
- マージする
- チーム開発の流れについて
前回までは全てローカル、つまり自分のPCでしかコードを管理することができません。 今回はリモートで管理するための方法について簡単に説明します!
チーム開発
チーム開発では普通、開発者がそれぞれのPCで作業をするため、複数台のPCで連携して作業する必要があります。 そのためには、gitサーバーというものを構築し、ソースコードをリモート上で管理してシェアする必要があります。
GitHub
自前でgitサーバーを構築して運営するにはコストがかかります。そこで登場したのがgitサーバーを提供するサービスです。 その代表に GitHub というサービスがあります。GitHubは世界中で多くの企業でも利用しているソフトウェア開発のプラットフォームであり、ソースコードをリモートで管理できるサービスです。 今回はこのGitHubを利用してリモートでのソース管理を体験しましょう!
チュートリアル
第一回、第二回の内容を踏まえた上で続きをやっていきましょう!
動作環境
動作環境は前回と同様、以下の通りです。
GitHubにアカウント登録する
GitHubのアカウントをお持ちでない方はこちらでアカウントを登録してください。 以下の操作を行ってください。
- ユーザ名、メールアドレス、パスワードを登録
- プランはFreeを選択
- メールアドレスに確認メールが届くので確認する
↑ユーザ名、メールアドレス、パスワードを登録
↑Freeを選択
↑メールが送られるので、メールを開いて登録を完了させる
SSH鍵を作成してGitHubに登録する(ssh-keygenコマンド)
次にGitHubにSSH公開鍵を登録するためにSSH鍵を生成します。
まず、ターミナルでssh-keygen -t rsa
というコマンドを実行します。次に色々入力を求められますが全てEnterキーで次に進んでください。
最後までいくと、~/.ssh
の中にiid_rsa.pub (公開鍵)
とid_rsa (秘密鍵)
が生成されます。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/yoshikihonda/.ssh/id_rsa): (Enterキー) Enter passphrase (empty for no passphrase): (Enterキー) Enter same passphrase again: (Enterキー) Your identification has been saved in /Users/yoshikihonda/.ssh/id_rsa. Your public key has been saved in /Users/yoshikihonda/.ssh/id_rsa.pub. The key fingerprint is: SHA256:+rJmOqgsoVQ9pw3safuRnFYgvdBXrBunskG5+743uEE yoshikihonda@Castor.local The key's randomart image is: +---[RSA 2048]----+ | .. | | o .. | | oo +... | | . =o++o . | | . . O.SE= | |.. =.*=o | |o. .. o*=.. | |+ . ..=+...o | |oo .=o++=+ . | +----[SHA256]-----+
事前に公開鍵をコピーしておきましょう。cat ~/.ssh/id_rsa.pub
コマンドで出力される内容をコピーしてください。
さて、これで準備ができたのでGitHubに公開鍵を登録していきましょう。
設定画面のメニューからSSH and GPG keys
を選択します。
次にNew SSH key
をクリックしてください。
Title
には適当に名前をつけてください、Key
には先ほどコピーした内容を貼り付けてください。ここで注意して欲しいのが、
最後に改行を入れないことです。
認証が失敗してしまうので気をつけてください。
リモートリポジトリの作成
お待たせしました、リモートリポジトリを作成していきましょう。
リポジトリ作成ページから「リポジトリ名」はpython-git
、「公開/非公開」は非公開
を入力し、Create repository
をクリックして作成します。
画面遷移後、Quick setup ~
とあると思います。ここでSSH
を選択し、出力される内容をコピーしておきましょう(git@github.com:{ユーザ名}/python-git.gitとなってるはず)
↑「リポジトリ名」、「公開/非公開」を入力
↑URLをコピー(SSHの方をコピーしてください)
リモートリポジトリの登録(git remote add コマンド)
先ほど作成したリモートリポジトリをローカルリポジトリに登録します。
登録にはgit remote add
コマンドを実行します。ローカルのリポジトリ直下で以下のコマンドを実行してください。
$ git remote add origin git@github.com:{ユーザ名}/python-git.git
ここでorigin
というのはリモートレポジトリの名前です。実はこの名前は何でも良いのですが習慣的にoriginという名前をつけます。(gitの推奨なのかな…?)
【おまけ】リモートリポジトリの確認(git remote -v)
リモートリポジトリを確認するにはgit remote -v
コマンドを実行します。
$ git remote -v origin git@github.com:{ユーザ名}/python-git.git (fetch) origin git@github.com:{ユーザ名}/python-git.git (push)
【おまけ】リモートリポジトリの設定変更(git remote rename/git remote set-url)
リモートレポジトリの名前を変更するにはgit remote rename
コマンドを実行します。以下のコマンドはoriginから"新しい名前"に変更します。
$ git remote rename origin {新しい名前}
リモートリポジトリの登録URLを変更するにはgit remote set-url
コマンドを実行します。以下のコマンドはoriginのURLを変更します。
$ git remote set-url origin {新しいURL}
リモートリポジトリにソースをアップ(git push)
続いてローカルのソースをリモートにアップしましょう。そのためにはgit push
コマンドを実行します。
$ git push origin master Enumerating objects: 9, done. Counting objects: 100% (9/9), done. Delta compression using up to 4 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (9/9), 1.04 KiB | 532.00 KiB/s, done. Total 9 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), done. To github:yoshidev523/python-git.git * [new branch] master -> master
これはoriginというリモートリポジトリにmasterの内容を反映させるということを意味します。 また、実行結果はmasterブランチをリモートに新たに作成したことを意味しています。
リモートでのソースを確認
最後にGitHubでソースを確認しましょう。https://github.com/{ユーザ名}/python-git
にアクセスするとcalc.pyがアップされていることが確認できるかと思います。
やったぜ。
おわりに
今回はgit操作のチュートリアル第三弾として、GitHubによるリモートでのコード管理を体験していただけました。
これにてgitに初挑戦してみようぜ!シリーズは終了です!これでgitの基本的な使い方は共有することができたかなと思っております。
gitは他にも便利なコマンドがありますし、GitHubの機能はまだまだ紹介しきれないことがあるので、gitの使い方に慣れてから調べられると良いと思います!本ブログでもニッチなコマンドを紹介できればと思います!
ではでは。
ご指摘、ご意見などがあれば、コメントお願いします。またTwitterのDMにでもご連絡いただけたらと思います。よしデブ(@yoshidev523)| Twitter(https://twitter.com/yoshidev523)