Gitとは
Gitとは、ファイルの変更履歴を管理するためのツールになります。
例えば、あるプロジェクトの開発に携わっているとします。そのプロジェクトのソースコードを編集する際に、誤って間違った内容を書き込んでしまったり、意図しない変更を加えてしまったりする時にGitを利用することで、過去のバージョンのソースコードに戻すことができます。
複数人で共同開発を行う際は、誰がいつどのような変更を加えたのかを明確にすることができるので多く使われます。
Gitを使ってできること
- 古いバージョンに簡単に戻せる
- 新旧のファイルを一元管理できる
- 編集した履歴を複数人で共有できる
- 複数人で修正した部分を一つに統合できる
Gitを使ったバージョン管理
Gitでは、ファイルの状態を好きなときに更新履歴として保存しておくことができます。
そのため、一度編集したファイルを過去の状態に戻したり、
編集箇所の差分を表示したりすることができます。
また、古いファイルを元に編集したファイルで、他人の編集した最新ファイルを上書きしようとすると、サーバにアップロードした時に警告が出ます。
そのため、知らず知らずのうちに他人の編集内容を上書きしてしまうといった失敗は起こりません。
Gitを理解するための基本的な用語について
リポジトリ(repository)
リポジトリとは、ファイルやディレクトリを入れて保存しておく貯蔵庫のことを言います。
Gitにおけるリポジトリは以下の2種類に分かれます。
- リモートリポジトリ(Github)
特定のサーバー上に設置して複数人で共有するためのリポジトリです。
- ローカルリポジトリ(vs code内)
ユーザーごとに配置される手元のマシンで編集できるリポジトリです。
2種類のリポジトリに分けることで、普段の作業はそれぞれのユーザーが手元のローカルリポジトリで行い、作業内容を共有するときにリモートリポジトリで公開するという使い方になります。
リモートリポジトリを介して他のユーザーの作業内容を把握することも可能です。
クローン(clone)
複数人で共有しているファイル(リモートリポジトリ)をまるごと自分のローカル環境(ローカルリポジトリ)に保存する機能になります。
ダウンロードに近いもので、ほとんどの場合Gitで最初に行う作業になります。
コミット(commit)
コミットは、ファイルやディレクトリの編集作業をローカルリポジトリに記録するために必要な操作のことです。
コミットを実行するとファイルを編集した日時を記録したファイルが生成されます。
コミットを実行するごとにファイルが生成され、時系列順にならんで格納されるので、ファイルを編集した履歴やその内容を確認することができるわけです。
プッシュ(push)
プッシュとは、ローカルリポジトリにあるファイルをリモートリポジトリに送信して保存する機能です。
いわゆるアップロードに近い感覚になります。
ブランチ(branch)
ファイルの編集履歴を分岐させて記録していく機能のことを言います。ファイル編集作業は複数のユーザーが同時に行うので、並行して同時に行われる作業を正確に管理するために、Gitにはブランチという機能が用意されています。これがGitのバージョン管理を効率的にする機能になります。
マージ(merge)
複数のブランチを一つにまとめて、完成形に近づけることをマージと呼びます。(マスターブランチに統合させます。)
プル(pull)
共有されているリモートリポジトリ(Githubデータ)に保存されているファイルの内、ローカルリポジトリ(あなたのローカル環境)に無いファイルや他のユーザーが更新したファイルのみをダウンロードする機能になります。リモートリポジトリのファイルをすべて丸ごとダウンロードするクローンに対して、ローカルリポジトリとの差分のみをダウンロードして更新するのがプルになります。
フェッチ(fetch)
複数人で作業する場合に、他の作業者がリモートリポジトリへデータの更新をしたかを確認する機能になります。
プルはローカルリポジトリの内容を更新しますが、フェッチは確認するのみになるのでデータが変更されることはありません。