GitとGitHubの使い方
チームで開発を行うとき、バージョン管理の手段としてGitとGitHubは必ずと言っていいほど必要になってきます。今回はGitとGitHubの使い方を備忘録としてまとめて行きたいと思います。
【目次】
【Gitとは】
Gitとはバージョン管理を行うためのシステムです。
バージョン管理システムには、特定のリポジトリにファイルや履歴情報を集める「集中型」と個々人のマシンのリポジトリにファイルや履歴情報を集める「分散型」に大きく分けられますが、Gitは後者の分散型です。Gitはロールバックや修正履歴の整理が簡単で、エンジニアにとってなくてはならない存在です。
【GitHubとは】
GitHubとはGitのリポジトリをまとめたソースコード管理サービスです。
GitHubにソースコードをホスティング(インターネット上のサーバにアップ)することで複数人の開発者と協働してコードを管理・編集することが出来ます。GitHubを利用する前にいくつか必要な知識があります。
【リポジトリとは】
リポジトリとは管理するファイルや履歴情報を保管する領域です。
個々人のマシンのリポジトリを「ローカルリポジトリ」、チーム全体で使用するネットワーク先のサーバー上などにあるリポジトリを「リモートリポジトリ」と言います。
【インデックスとは】
インデックスとはコミットを行う前に変更内容を一時的に保管する領域です。
インデックスに追加されたファイルのみコミットすることができます。
【コマンド一覧】
【アッド(add)】
アッドとはファイルの作成・変更・削除をインデックスに追加するコマンドです。
【コミット(commit)】
コミットとはファイルやディレクトリの追加・変更をローカルリポジトリに反映するコマンドです。
コミットはなるべく一つの作業ごとに行い、作業が複雑になりすぎないようにしましょう。
【フォーク(fork)】
フォークとはリポジトリをコピーするコマンドです。
他の開発者が作成したオリジナルのリポジトリを自分のアカウントにコピー(fork)してバグを修正し、その開発者にバグ修正に関する変更を提案することができます。
【クローン(clone)】
クローンとはリモートリポジトリをローカルリポジトリにダウンロードするコマンドです。
フォークはGitHubサーバー上でリポジトリの複製を行うコマンドであるのに対して、クローンはサーバー上のリポジトリをローカルPCに複製することができます。GitHub上のリポジトリをローカル上にコピーしたいときはフォーク(GitHubサーバーの自分のアカウントに複製)してからクローン(ローカルPCに複製)します。
【プルリクエスト(Pull request)】
プルリクエストとは自分の行った変更をリモートリポジトリに通知する操作です。
オリジナルリポジトリを直接編集できない場合、オリジナルリポジトリの管理者に対してフォークしたリポジトリを介して変更作業を通知することができます。
【ブランチ(branch)】
ブランチとは作業を分岐させて履歴の流れを記録するコマンドです。
作業を分岐することで同時に一つのソースコードやアプリケーションに対してバグ修正・機能追加ができます。基本的に開発する機能ごとにブランチを切ったり、修正と追加をブランチで切ったりします。
【フェッチ(fetch)】
フェッチとはリモートの「master」ブランチをローカルの「origin/master」ブランチに持ってくるコマンドです。
フェッチを取り消したいときは「git reset --hard HEAD」です。
【マージ(merge)】
マージとはローカルの「origin/master」ブランチをローカルの「master」ブランチに持ってくるコマンドです。
マージを取り消したいときは「git merge --abort」です。
【プル(pull)】
プルとはフェッチとマージを同時に行うコマンドです。つまり、リモートの「master」ブランチからローカルの「origin/master」ブランチを介してローカルの「master」ブランチに持ってくるコマンドです。
プルを取り消したいときは「git merge --abort → git reset --hard HEAD」です。
【プッシュ(push)】
プッシュとはファイルの追加や変更の履歴をリモートリポジトリにアップロードするコマンドです。