初学者向け：GitとGitHubの基礎知識からリポジトリの作り方/実践的なコマンドの備忘録

## はじめに

Gitは、ソフトウェア開発においてソースコードのバージョン管理を行うためのツールです。

一方、GitHubはGitをベースにしたコードのホスティングサービスであり、リポジトリの共有や共同作業が容易に行えます。

普段、私はインフラ関連の仕事をしていますが、GitやGitHubは個人開発やITスクールのハッカソンなどのプライベート利用がメインです。

本記事では、GitとGitHubの基本的な知識から、インストールや使用方法、よく使われるコマンドまでを解説します。

## 知識整理
### Gitとは？
Gitは、ソースコードを効率的に管理するための「分散型バージョン管理システム」です。

![スクリーンショット 2024-10-25 11.42.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/30b91a41-9078-0a41-45bd-a8a5200b75c1.png)
引用画像：https://www.ricksoft.jp/blog/articles/001410.html

変更履歴を追跡し、過去のバージョンに戻ったり、複数の開発者が同じプロジェクトに同時に取り組むことができるため、チーム開発に欠かせないツールです。

:::note
**バージョン管理**：コードの変更履歴を記録し、いつでも過去のバージョンに戻すことができます。
**分散型**：各開発者がローカルでリポジトリを保持し、中央サーバーがなくても開発が進められます。
:::

### GitHubとは？
GitHubは、Gitをベースにしたウェブサービスであり、リポジトリをクラウド上でホスティングし、他の開発者と共有するためのプラットフォームです。

![スクリーンショット 2024-10-25 11.40.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/798a2e66-5c86-1403-68b1-d8ad3af0b31a.png)
引用画像：https://iij.github.io/bootcamp/development/github/

GitHubを使うことで、リポジトリのバックアップや公開、他の開発者とのコラボレーションがスムーズになります。

:::note
**リモートリポジトリ**：リモートにリポジトリを保管し、複数の開発者がアクセス可能です。
**オープンソースプロジェクト**：多くのオープンソースプロジェクトがGitHub上で公開されています。
:::

## インストールや導入について
### Gitのインストール
Gitは多くのOSで対応していますが、ここでは代表的な方法を紹介します。私の自宅環境では、Windows、macOS、Linuxを使っているので、それぞれインストールしています。

**Windows**
Git公式サイトにアクセスし、インストーラーをダウンロードして指示に従いインストールします。

https://git-scm.com/

インストール後、コマンドプロンプトまたはPowerShellで以下のコマンドを実行して、インストールが成功しているか確認します。

```bash
git --version
```

私のWindowsの環境では、gitのバージョンは「2.43.0」となっています。

![スクリーンショット 2024-10-25 11.21.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/bf84132d-f4e6-d999-289b-c527932ea3a2.png)


**macOS**
Homebrewを使用してインストールする場合、ターミナルで以下を実行します。

```bash
brew install git
```

私のmacOSの環境では、gitのバージョンは「2.45.0」となっています。

![スクリーンショット 2024-10-25 11.08.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/2c76a13e-f95b-b38f-c2e7-7eef325e0fc8.png)


**Linux (Ubuntu)**
Ubuntuでは、パッケージマネージャでインストールします。

```bash
sudo apt-get update
sudo apt-get install git
```

私のLinuxの環境では、gitのバージョンは「2.39.0」となっています。

![スクリーンショット 2024-10-25 11.22.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/6fca93f4-00fd-dba8-c292-9be0fc5f3311.png)


インストールが完了したら、初期設定としてユーザー名とメールアドレスを設定します。

```bash
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
```

### GitHubの導入
GitHubの公式サイトにアクセスしてアカウントを作成します。ログイン後、リポジトリの作成が可能になります。

https://github.co.jp/

## GitHub上でリポジトリの作り方について
GitHub上でリポジトリを作成する方法を紹介します。

GitHubにログインし、右上の「Repositories」クリックして「New」を選択します。

![スクリーンショット 2024-10-25 11.11.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/baceebb1-9c4c-ba03-c506-62e6d71407a0.png)


リポジトリ名を入力し、公開するか非公開にするかを選択します。

![スクリーンショット 2024-10-25 11.13.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/eb9f4505-0fa5-db27-a6f5-08e3af8cca7b.png)


「Create repository」をクリックして新しいリポジトリが作成されます。

リポジトリが作成されたら、Gitでローカルのコードをそのリポジトリにプッシュすることができます。以下の手順で進めます。

ターミナルで作業ディレクトリに移動し、リポジトリを初期化します。


```bash
git init
```

リポジトリにファイルを追加し、ステージングします。

```bash
git add .
```

コミットを行います。

```bash
git commit -m "Initial commit"
```

リモートリポジトリを追加し、プッシュします。

```bash
git remote add origin https://github.com/username/repository.git
git push -u origin main
```

## よく使うgitコマンドについて
Gitのよく使うコマンドをいくつか紹介します。

### ``git init``
新しいリポジトリを初期化します。

```bash
git init
```

### ``git clone``
既存のリポジトリをクローン（コピー）します。

```bash
git clone https://github.com/username/repository.git
```

### ``git add``
ファイルをステージングエリアに追加します。

```bash
git add filename
```

### ``git commit``
ステージングエリアにある変更をコミットします。

```bash
git commit -m "commit message"
```

### ``git push``
ローカルのコミットをリモートリポジトリにプッシュします。

```bash
git push origin branch-name
```

### ``git pull``
リモートリポジトリから最新の変更を取得し、ローカルリポジトリに反映します。

```bash
git pull origin branch-name
```

### ``git status``
現在のリポジトリの状態を確認します。

```bash
git status
```

### ``git branch``
ブランチの作成や一覧を表示します。

```bash
git branch
```

### ``git merge``
他のブランチを現在のブランチにマージします。

```bash
git merge branch-name
```

## まとめ

Gitは、ソースコードを管理するための強力なツールであり、GitHubと連携することで、クラウド上での効率的な共同作業が可能になります。

本記事では、GitとGitHubの基本的な知識や導入方法、リポジトリの作成方法、そしてよく使うGitコマンドについて解説しました。

Gitをマスターすることで、個人プロジェクトからチーム開発まで、幅広く活用できるスキルを身につけることができます。

## おまけ

最初はどのコマンドを使えばいいのか迷いましたが、GitHubでリポジトリを作成した際に表示される「**…or create a new repository on the command line**」に記載されているコマンドを使うと、だいたいのことができるようになりました！

![スクリーンショット 2024-10-25 11.15.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/6964d6c4-e2c5-991b-fee9-0cd9d8903f05.png)

## 参考文献

https://qiita.com/uhooi/items/c26c7c1beb5b36e7418e

https://qiita.com/ist-sa-o/items/97205ca0ce04dcae2adb

https://qiita.com/free-honda/items/da83c5dd44650c883164