git 詳解

# はじめに
Gitは、現代のソフトウェア開発において不可欠なツールの一つです。Gitを使うことで、複数人での開発やバージョン管理、コードの変更履歴の管理などが簡単にできるようになります。本記事では、Gitについて詳しく解説します。

# Gitとは
Gitは、Linuxカーネルの開発者であるLinus Torvaldsによって開発された分散型バージョン管理システムです。Gitは、リモートリポジトリとローカルリポジトリを持ち、各々のリポジトリにコードの変更履歴が保存されます。また、複数人での開発にも対応しており、複数の開発者が同時にコードを編集することができます。

# Gitの用語
Gitで使用される代表的な用語について以下で説明します。

| 用語 | 説明 |
|:--|:--|
| リポジトリ | リポジトリとは、Gitで管理されるプロジェクトの中心的なデータベースのことです。リポジトリには、全てのファイルの履歴が保存されます。リポジトリは、ローカルリポジトリとリモートリポジトリの2つに分かれます。ローカルリポジトリは、自分のPC上に保存されているリポジトリであり、リモートリポジトリは、ネットワーク上に保存されているリポジトリです。 |
| コミット | コミットとは、Gitでファイルの変更履歴を保存する単位のことです。コミットをすることで、変更内容を記録することができます。また、コミットをすることで、リポジトリ内のファイルの履歴が更新されます。 |
| ブランチ | ブランチとは、リポジトリ内の変更履歴を分岐させることができる機能です。複数の人が同時にリポジトリ内のファイルを変更する場合、ブランチを使って、変更履歴を分岐させることができます。それぞれのブランチで、異なる変更を行うことができます。 |
| マージ | マージとは、複数のブランチを統合することです。マージをすることで、異なるブランチで変更されたファイルを、一つのブランチにまとめることができます。 |
| プルリクエスト | コードの変更をレビューしてもらい、マージを依頼する機能。 |
| プッシュ | プッシュとは、ローカルリポジトリの変更内容をリモートリポジトリに反映させることです。プッシュすることで、リモートリポジトリに変更内容をアップロードすることができます。 |
| プル | プルとは、リモートリポジトリの変更内容をローカルリポジトリに反映させることです。プルすることで、リモートリポジトリの最新の変更内容をローカルリポジトリに取り込むことができます。 |

# gitの使い方
## gitのインストール
gitを使用するためには、まずコンピューターにgitをインストールする必要があります。以下の手順に従って、インストールを行ってください。

### Windowsの場合

まず、以下のURLから「Git for Windows」のインストーラーをダウンロードしてください。
- https://git-scm.com/download/win

ダウンロードが完了したら、ダウンロードしたファイルを開き、指示に従ってインストールを行ってください。

### Macの場合

Macの場合は、以下のコマンドをターミナルで入力し、Homebrewをインストールします。

```bash
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
Homebrewのインストールが完了したら、以下のコマンドをターミナルで入力し、Gitをインストールします。

```bash
$ brew install git
```

## gitの基本的なコマンド
gitの基本的なコマンドを紹介します。まずは以下のコマンドを覚えておくことをおすすめします。

### git init

新しいプロジェクトを開始する場合、`git init`コマンドを使用して、新しいgitリポジトリを作成します。

```bash
$ git init
```

### git add

`git add`コマンドを使用して、変更したファイルをステージングエリアに追加します。

```bash
$ git add <ファイル名>
```
すべての変更したファイルをステージングエリアに追加するには、以下のコマンドを使用します。

```bash
$ git add .
```

### git commit

`git commit`コマンドを使用して、ステージングエリアに追加されたファイルをローカルリポジトリにコミットします。

```bash
$ git commit -m "コミットメッセージ"
```

### git push

ローカルリポジトリにコミットした変更を、リモートリポジトリにプッシュするには、`git push`コマンドを使用します。

```bash
$ git push <リモートリポジトリ名> <ブランチ名>
```
例えば、リモートリポジトリ名が`origin`で、ブランチ名が`master`の場合、以下のようにコマンドを実行します。

```bash
$ git push origin master
```

### git pull

リモートリポジトリから変更を取得するには、`git pull`コマンドを使用します。

```bash
$ git pull <リモートリポジトリ名> <ブランチ名>
```
例えば、リモートリポジトリ名が`origin`で、ブランチ名が`master`の場合、以下のようにコマンドを実行します。

```bash
$ git pull origin master
```

### git clone

リモートリポジトリから新しいローカルリポジトリを作成するには、`git clone`コマンドを使用します。

```bash
$ git clone <URL>
```
例えば、リモートリポジトリのURLが[https://github.com/example/example.git](https://github.com/example/example.git)の場合、以下のようにコマンドを実行します。

```bash
$ git clone https://github.com/example/example.git
```

## gitの高度な機能
gitには、基本的なコマンド以外にも、さまざまな高度な機能があります。以下では、その一部を紹介します。

### git branch

`git branch`コマンドを使用して、ブランチを作成したり、ブランチを切り替えたりすることができます。
新しいブランチを作成するには、以下のコマンドを使用します。

```bash
$ git branch <ブランチ名>
```
ブランチを切り替えるには、以下のコマンドを使用します。

```bash
$ git checkout <ブランチ名>
```

### git merge

`git merge`コマンドを使用して、別のブランチの変更を現在のブランチにマージすることができます。

マージ先のブランチに移動してから、以下のコマンドを使用します。

```bash
$ git merge <ブランチ名>
```

### git rebase

`git rebase`コマンドを使用して、現在のブランチの変更を別のブランチの変更に基づいて再構築することができます。

再構築先のブランチに移動してから、以下のコマンドを使用します。

```bash
$ git rebase <ブランチ名>
```