自分の書いたコードを公開するツールだよ〜〜
企業では、その会社の中だけで公開し、バグやセキュリティ上の問題がないかを他の社員に見てもらい、レビューしてもらったりするよ〜〜
いつでも好きな時点に戻せて、各メンバーの修正を合体できるよ〜〜
Git とは -> ファイルの変更履歴を記録できるバージョン管理を行うためのツールだよ〜〜
GitHubとは -> gitを使ったチーム開発をより便利にするwebサービスだよ〜〜
バージョン管理システムには、いくつか種類があるよ簡単にみて行こう!!
バージョン管理の種類

バージョン管理方式 | 概要 | 管理ツール |
集中型バージョン管理 | サーバー上のリポジトリを複数のクライアントが操作して、バージョンを管理する | CVS、 Subversion |
分散型バージョン管理 | サーバー上のリポジトリを複数のクライアントがローカル上に複製し、変更結果をリポジトリにマージする事で、バージョンを管理する | Git MercurialGIthubの大まかな仕組み |
GigHubの全体像
リモートリポジトリは複数あるわけではなくこれはイメージです

バージョン管理で使われる用語
リポジトリ
ファイルの内容やその変更履歴などを記録するデータベースのこと。
ファイル名.git がリポジトリの形
リモートリポジトリ
Github上の、データを保存している場所を指す
ローカルリポジトリ
Githubに送信するデータを登録しておく、自身のPC上の場所を指す
作業コピー/作業ツリー
作業コピー
バージョン管理システムで管理されているファイルのこと。
バージョン管理システムで管理しているファイルの実態はリポジトリ内にあり、ファイルシステムは上のファイルはあくまでその一時的なコピーである考えから作業コピーと言います。
作業ツリー
作業コピーなどが格納されているディレクトリのこと
ブランチ
履歴の流れを分岐して記録していくためのもの。
分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができる
Masterブランチから、作業ブランチを作って移動してから作業することをブランチを切ると言う
コミットとコミットID
コミット=リビジョン
作業コピーに対してファイルの追加・削除・編集を行なった後に変更履歴を記録すること。
インデックス
これから登録するファイルが、以前とどう変わったかを登録する一次的な保管場所。
GitHubにデータを送信する前に一時的にローカル環境にデータを登録し,その後一気にGitHub上に送信します.
そのローカル環境にデータを登録することをコミットといいます.
コミットID
それぞれのコミットを識別するためのIDのこと。
タグ
GitではコミットIDに対して、わかりやすい別名をつけることができて、その別名のこと。
チェックアウト
ローカルリポジトリに記録されている、特定のコミット時のファイルを取り出す作業のこと。
HEAD
今チェックアウトされているコミットを指す時の呼びかた。これは今自分がどのコミットで作業しているかを意味する。HEADは常にコミットを指している。ツリーに変化をもたらすほとんどのgitコマンドは、このHEADを動かすことからその動作を始める。
ブランチ
コミットは時系列に沿って管理され、コミット日時が最近のものほど新しいものとして扱われる。
マージと競合(コンフリクト)
マージ
別の開発者が加えた変更点や別のブランチで加えた変更点をを取り込む作業のこと
競合(コンフリクト)
マージするとき同一の箇所に自分と他のユーザーが異なる変更を同時に加えている場合がある。その状況のこと。つまりマージ時に同じに場所に同時に別々の修正がなされたときに発生する
クローン
リモートリポジトリをコピーしてローカルリポジトリを作成する作業のこと
プッシュとプル
プッシュ
リモートリポジトリにローカルリポジトリの内容を送信すること。
プル
リモートリポジトリの内応をローカルリポジトリに取り込むこと。
フェッチ
リモートリポジトリから更新を取得
フォーク
他の人が公開しているリモートリポジトリを自分のアカウントにコピーする機能のこと