はじめに
この記事は、Gitに関して全然詳しくない!
教えてもらったとき、いろんな用語が飛び交ってたけど意味が分からん!
といった超初心者向けです。
そのため、実際の操作方法は解説しておらず、大まかな概念のみまとめています。
Gitとは
Gitとは、プログラムのソースコードなどの変更履歴を記録追加するための分散型バージョン管理システムのことである。
有名なプラットフォームとして、GithubやBitBucket、GitLabなどが挙げられる。
用語集
・分散型バージョン管理システム
ユーザーがそれぞれのPCにローカルリポジトリ(リモートリポジトリのコピー)を持つ方式のこと。
ユーザーは、ローカルリポジトリにある程度の編集を加えた後に、コピー元のリポジトリ(リモートリポジトリ)に変更を加える。
・リポジトリ
ファイルであったり、変更履歴を置いておく場所のようなもの。
・インデックス
ローカルリポジトリで修正を加えたファイルをリモートリポジトリにコミットする準備をするための領域。ステージングエリアと呼ばれることもある。
・コミット
ファイルやでディレクトリの追加変更をリポジトリに記録すること。コミットを行う際にはどのような変更を行ったのかメモしておくことができる。
・クローン
リモートリポジトリをローカルリポジトリへコピーして保存すること。
・ステージ
ローカルリポジトリで行った編集内容をインデックスへ反映すること。
・プッシュ
ローカルリポジトリの内容をリモートリポジトリへ反映すること。プッシュするには羅勝目コミットしておくことが必要である。
・ワーキングツリー
ローカルリポジトリの別称のような感じ。記事によって呼称が異なっていたので念のため。
大まかな作業工程
出てくる用語については簡単に記述したので、これから大まかな流れについて解説する。
上図はリモートリポジトリ、ローカルリポジトリ、インデックスの関係性について
簡単にまとめたものある。
一般的な操作手順は番号を振ったとおりである。特に、気を付けたい点はコミットの部分で、コミットは、記録する役割しかもっていないため、実際に、⓶の編集内容を反映したいのであれば、その後プッシュという作業を行わなければならない。
さて・・・
次に、ここまで解説した手順を用いて、複数人でリモートリポジトリの更新を行うとどうなるか考えよう。
例として、A , B , C の3人で編集を行う場合を考える。
図の都合上インデックスは省略した。注目してほしい箇所はコミットの部分である。
図では、Aが最初にコミットし、その次にBがコミットする様子を表している。
このような操作を行ってしまうと、Bのコミットのタイミングでエラーが返ってきてしまう。理由としては、Aがコミットした内容がBのコミットによって上書きされてしまうからである。
このようなエラーを回避するためにはブランチを分けなければならない。
まとまりがなくなってきたので、ブランチに関してはまた、別途。