GitHubを覚えよう覚えようと思ってなかなか手をつけてこなかったので、そろそろ本腰入れて使おうと色々やってみたのでまとめておきます。
GitHubとは?
ソースファイルのバージョン管理システムにGitというものがあります。
Gitはリポジトリ(管理保存場所)先として、ローカル、もしくはリモートを選択出来るのですが、GitHubはそのリモート先にあたるもので、プロジェクトの管理をWeb上で行うことが出来るサービスです。
GitHubは無料で利用出来るプランも用意されています。容量に応じて金額が変わってきますが、プロジェクトを非公開で管理する場合は無料プランは選択出来ません。
GitHubには様々な機能が用意されています。
公開しているプロジェクトに対して、ソースファイルを自分のリポジトリにコピーを行い、プロジェクトをカスタマイズしてみたり(Fork:フォーク)
また、そのカスタマイズしたソースファイルを、元々の開発者に対して利用してもらうようリクエストを送ったり(Pull Request:プルリクエスト)
することができます。プロジェクトを公開する事で、自分だけではなく、多くの人がそのプロジェクトに関わることが可能になります。
これはオープンソースのメリットを更に活かせる機能であり、プロジェクトを複数人で開発するにあたり、非常に優れたサービスといえます。
GitHubを使えるようにする
2-1.ローカルへGitのインストール
GitHubを利用するには、まずGitを自身の端末にインストールをする必要があります。Windowsにインストールする場合は過去に記事を書いているので、そちらをご参照ください。
デザイナーでも使うと便利なバージョン管理システムGitの勉強会に参加しました
Macや他のOSの場合はGitのサイトにインストール方法が掲載されています。
Git 1.4 使い始める – Gitのインストール
インストールが完了したらGitのglobalを設定しておきます。
※ここからはMacのターミナルを利用した方法で解説します。GUIを採用したソフトウェア等も存在します。そういうのを使うのも便利ですね
$ git config --global user.name "ユーザー名" $ git config --global user.email メールアドレス
2-2.GitHubのアカウント取得と公開鍵の設定、リポジトリの作成
次にGitHubのアカウントを取得します。https://github.com/
アカウントを開設したら色々と設定を行います。
まず、ローカルからGitHubにpushする際、接続するために必要となる公開鍵を登録します。
$ ssh-keygen
SSH鍵がローカルの$HOME/.ssh/に作成されるので、GitHubのAccountSettingにあるSSH Keysに登録します。
画面が遷移するとAdd an SSH keyというボタンがあるので、そちらをクリックし、下記の項目を入力します。
これで鍵の設定は完了です。
SSH鍵の登録が出来たら、プロジェクトを管理するためのリポジトリを作成します。
create a new repoのボタンから作成し、ファイルを上げてバージョン管理を行います。
リポジトリが出来たら内容を確認します。
ここにつけた名前があれば、無事リポジトリは完成になります。中を確認し、ローカルの方でリモートの設定を行う必要があるのでページを開きます。
上記内容をローカルで実行していくのですが、git remote add origin git@~と言う部分でローカルのGitに、リモート情報の設定を行う事になります。
次からは実際にGitへのコミット、GitHubへのpushになります。
2-3.ローカルからGitHubまでの簡単な流れ
$ git init
ローカルのディレクトリ内に「.git」という隠しディレクトリが作成されます。
$ git add "コミットしたいファイル名"
コミット対象にするファイルを指定します。
ファイルをアップデートしてコミットする際に必要な処理です。
$ git commit -m "コミットコメント"
ファイルに修正を加えたら、コミットしてバージョンを管理していきます。
コミットした場所へは簡単に戻ったり出来るので、こまめにしておくと便利ですね。
$ git push origin master
ローカルでコミットしていたものをリモート(GitHub)のリポジトリに送信します。
この流れでファイルのバージョン管理を行うことが出来ます。
GitHubに送信しておけば別の端末からでも作業が出来ますし、ソースコードの編集はGitHub上でも出来るので便利ですね。
Git及びGitHubでよく使うコマンド一覧
他にもまだまだありますが、よく使うものはこんな感じでしょうか?
リポジトリの作成およびメンテナンスに利用するコマンド
$ git init
リポジトリを作成します。
ディレクトリ内に「.git」というディレクトリが作成されます。
$ git clone
既存のリポジトリをローカルに複製します。
$ git fsck $ git fsck --full
リポジトリの正当性チェックを行います。
「--full」とオプションを付けることで完全なチェックが行えます。
$ git gc
リポジトリ内の不要なオブジェクトを削除し、最適化を行います。
コミットやマージが増えると、容量が圧迫されたり、パフォーマンスが低下したりしますが、最適化を行うことでそれらの改善が期待されます。
作業ツリーやブランチを操作・管理するコマンド
$ git status
変更が加えられたファイルを表示します。
$ git diff
ファイルに加えられた変更点をdiff形式で表示します。
$ git add
コミットするファイルを指定します。
$ git commit
変更点をコミットします。
$ git log
コミットログを閲覧します。
キーボードの「Q」で閲覧を終了します。
$ git reset
直前のコミットを取り消します。
$ git revert "コミット名"
作業ツリーを、指定したコミット時点の状態まで戻します。
git resetと似ていますが、こちらは「差し戻した」という情報が作業履歴に残ります。
$ git branch
ブランチ情報の表示、及び、ブランチの作成を行います。
何も指定しなければ、masterというブランチにコミットしていきます。
別のツリーを作成したい場合は、このコマンドを利用して新たなブランチを作成します。
$ git checkout $ git checkout -b branch2
ブランチの切り替えを行います。
オプションとして「-b」を付け、その後ろに「branch2」というブランチ名を入れると「branch2」というブランチを作成し、そのブランチに切り替える事が出来ます。
$ git show-branch $ git show-branch --all $ git show-branch --more="表示させたい数"
ブランチの作成/変更/マージ履歴の表示を行います。
$ git merge
ローカルブランチのマージを行います。
$ git tag
コミットにタグを付けます。
$ git stash $ git stash list $ git stash pop
現在の作業ツリーの状態を一時的に保管します。
現在作業中の状態をコミットせずに、他のブランチを触りたい、作業したいという時に利用します。
作業ツリー状態を一時的に保存して、別のブランチへチェックアウトし、「pop」を使って後で再度呼び出す事が出来ます。
一時保存されている作業リストを「list」を使って確認することも出来るので便利ですね。
$ git rebase
ブランチの派生元(上流)を変更します。
ほかのリポジトリとの連携を行うコマンド
$ git pull "取込元リポジトリ"
ほかのリポジトリとの変更点を、ローカルリポジトリにマージします。
$ git push "送信先リポジトリ" "送信するブランチ:送信先ブランチ"
公開リポジトリに自分のリポジトリの内容を送信します。
送信先ブランチを省略すると、送信するブランチと同じブランチを指定したことになります。
また送信先に存在しない場合は新たに作成されます。
だーっと書きましたが、ひとまず使えるようにするまでにはこんな感じでいいと思います。
Gitのインストール等で躓くことが多いかもしれません。でもそこで諦めずに乗り越えると楽しい世界が待ってますよ。
追記
ローカルの~/.ssh/configの設定
2014年1月26日追記
Host github.com User "ユーザー名" Hostname github.com IdentityFile ~/.ssh/****_rsa #作った秘密鍵
viエディタ等でconfigファイルに追記します。
Comments