はじめに
Qiita初投稿となります。
駆け出しエンジニアがGithubに関して学んだことを記事としてまとめてみました。
初心者向けの簡単な説明となりますが、お付き合い頂ければ幸いです。
GitとGithub
Gitとは
Git(ギット)とは、分散型バージョン管理システムのことです。
バージョン管理ツールには集中型と分散型の2種類があり、集中型ではファイルの保管場所が一箇所のみの提供となるため、複数人数で1つのファイルを同時に修正したときにメンバーの変更がほかのメンバーに上書きされてしまう可能性があります。
一方でGitのような分散型は利用者一人一人に専用の保管場所を提供するため、他のメンバーに上書きされる心配なく個人の保管場所で作業することができます。
個人の作業としてファイルの修正が一段落したら、チーム全員で共有する保管場所に反映させていきます。
Githubとは
GithubはGitの仕組みを利用してソースプログラムなどを保存・共有できるようにしたプログラマー向けのWebサービスです。
Microsoft傘下のGitHub社が運営するソースコードホスティングサービスであり、Gitをベースとしたソースコードホスティングサイトはいくつも存在しますがその中でも世界最大級です。
Githubの魅力としては、自分のソースコードを公開して助言を求めたり、自身が開発したシステムを公開して利用してもらいやすい点です。
単にソースコードをホスティングするだけでなく、開発者同士のコミュニティーの場としても広く利用されています。
Github全体像
①リポジトリ
直訳すると「貯蔵庫」であり、「Gitにより管理されるファイルやバージョン情報を格納する領域」のことです。
Gitにおけるリポジトリには以下の2種類があります。
・リモートリポジトリ:サーバ上にある複数人で共有管理するリポジトリ
・ローカルリポジトリ:ローカル上にある個人で編集作業をするリポジトリ
②ステージングエリア
ワークディレクトリとローカルリポジトリとの差分を記録する一時的な保存領域です。
ステージングエリアにインデックスのリストとして保存することで、リポジトリに保存したいファイルだけを選択することができます。
③ワークディレクトリ
ローカルで実際に使うGitに管理されているディレクトリ。
基本的にはワークツリー上で変更を加え、リポジトリを更新していく流れになります。
④ブランチ
直訳すると「枝、分岐」という意味で、バージョンごとにリポジトリを管理する機能のことです。
分岐したブランチは他のブランチに影響を与えないので複数人が別々のブランチ上で同時に作業でき、不具合などが発生しても問題の切り分けが容易になります。
設定を変更しない限りは、Gitリポジトリを作成した際のデフォルトのブランチ名は「main」となります。
よく使うコマンド
コマンド名 | 用途 |
---|---|
git init | リポジトリを新規作成 |
git clone | リモートリポジトリからソースコードをローカルに複製 |
git pull | リモートリポジトリの変更点をローカルに取得 |
git push | ローカルリポジトリの変更点をリモートリポジトリにアップロード |
git add | コミット対象のファイルをステージングエリアに登録 |
git commit | ローカルリポジトリに追加したファイルをコミット |
git reset | ステージング/コミットを取り消し |
git revert | 特定のコミットを取り消し |
git log | コミットの履歴を表示 |
git status | 作業ツリー内の差分ファイルを表示 |
git diff | ファイル内の差分箇所を表示 |
git mv | ファイルを移動/ファイル名を変更 |
git branch | ブランチを作成 |
git checkout | 処理対象ブランチの切り替え |
git merge | 別のブランチから変更点をマージ |
git rebase | 派生元ブランチに変更をマージ |
git fetch | originのコミット状態を取得 |
作業フロー【一例】
まずは、自分自身の作業場所を最新化します。
$ git pull
自分の作業をするためのブランチを作成し、そのブランチに移動。
$ git checkout -b ブランチ名
ソースコードの修正後、変更を確認。
$ git status
変更されたファイルが赤字で表示されるので、指定してステージングエリアに追加。
(複数指定する場合、間は半角スペース)
$ git add 修正したファイル1 修正したファイル2 ...
ステージングエリアに追加したファイルをローカルリポジトリにコミット。
$ git commit -m "コミットメッセージ"
Githubのリモートブランチにアップロード
$ git push origin ブランチ名
pushし終わったらプルリクエストを作成してレビューをもらいます。
レビュー後の修正が完了し、レビュアーの承認が降りたらマージする(してもらう)という流れになります。
終わりに
Githubの説明は以上となります。
お付き合いいただきありがとうございました。