この記事では、gitに関する基本的な知識をまとめています。
Gitとは
Gitはテキストファイルなどのバージョン管理を行うためのソフトウェアです。バージョン管理とは、ファイルの変更内容や変更履歴を保持しておいて、あとから古い状態に切り戻したりできるようにするためのものです。プログラムコードの管理がしやすいため、チームで開発をする際にGitは欠かせないと言えるでしょう。
バージョン管理システムの違い
バージョン管理システム自体は他にもいろいろあります。SubversionがGit以外では有名ですが、SubversionとGitは、管理の方法がだいぶ違います。ここでは管理方法について詳しく説明していきます。
Gitにはサーバーだけでなくローカルにもリポジトリ(ローカルリポジトリ)があるのが特徴です。サーバーのリポジトリに直接コミット(登録&保存)は行いません。ローカルリポジトリにコミットを行って、そのローカルリポジトリからサーバーのリポジトリ(=リモートリポジトリ)にコミットの内容を別途送り込みます。
Gitとは異なり、ローカルリポジトリが存在せず、直接リモートリポジトリにコミットします。Gitのようにローカルリポジトリの容量を気にしなくて良いという性質上、バイナリファイル(テキストファイル以外)を管理するのに適していると言えるでしょう。
ローカルリポジトリへのコミット
先ほどGitでのローカルリポジトリに対するコミットについて触れましたが、コミットする際に段階があることを理解しなければなりません。
段階とは以下のようなものです↓
ステージングはファイルからコミットに含めたい変更を選別する作業といえます。この一段階があることによってローカルリポジトリには必要なファイルだけが存在することになり、とても整理しやすくなるのです。
ブランチ
Gitを語る上で欠かせないのがこのブランチです。具体的に説明すると、1つのプロジェクトから分岐させることにより、プロジェクト本体に影響を与えずに開発を行える機能のことを言います。この機能によって複数人が同時に共同開発をすることを可能にしています。
結合ブランチ(マスターブランチ)
統合ブランチとは、リリース版が何時でも作成可能なようしておくためのブランチです。つまり、安定した状態を保っておく必要があり、基本的に直接変更を加えるがないブランチです。
トピックブランチ
変更を加える際に作成するブランチです。追加機能やバグ修正といったある課題に関する作業はこのブランチで行います。トピックブランチで内容をどれだけ変更してもマージ(=ブランチの更新取り込み)するまで結合ブランチに影響はありません。
コンフリクト
マージする際に同じ場所を同時に更新してしまった場合、コンフリクトという問題が発生します。
同じ場所を同時に更新してしまうと…
コンフリクトが発生!
コンフリクトはコマンド操作によって内容を修正したり、片方を優先することによって解消することができます。
おわりに
Gitの基礎的な知識まとめは以上です。後々詳しくコマンドなどについてまとめられたらいいなと考えています。