---
# System prepended metadata

title: 'Git,GitHub講習'
tags: [講習会]

---

# Git,GitHub講習

## Gitってなんぞや？

Gitとは**バージョン管理システム**の1つ。

そんなこと言われてもわからないかと思うので簡単な例を示しながら説明します。

#### 例

あなたは友達と共同でレポートを書いています。チームからのレポートと自分のレポートをとりあえず1つのフォルダに入れておくことにしました。

するとこんなことになってしまいました。

- レポート.pdf
- レポート(最新).pdf
- レポート(最新)(修正版).pdf
- レポート(田中).pdf
- レポート(最新)のコピー.pdf
- レポート(令和最新版).pdf

このように何も考えずに管理していると，どれが最新のものなのか，誰のものなのか，どんな変更をしたのかが全然把握できないという風になってしまいます。また，先週の編集を無かったことにしたくてもどれが先週の編集かがわからないという問題が発生します。

また，チームで共有しているファイルの場合，複数人で同じファイルを同時に編集していると，先に編集した内容が他の人によって上書きされてしまうといったことも起きかねません。

そのような問題を解決するため，Gitなどのバージョン管理システムが開発されました。

### Gitの何がうれしいの？

Gitを使うと，編集履歴や編集者などの情報を保存することができます。それによって，一度編集したファイルを過去の状態に戻したり，編集箇所の差分を表示したりすることができます。

また，他の人の変更を上書きしようとすると，サーバーから警告が出るため知らないうちに他の人の変更を上書きしてしまうといった事故を防ぐことができます。

## Gitのインストール

ここではWindows(Git BashとWSL)とmacOSの入れ方を解説します。
Linuxユーザーはきっとわかっているはずです。



### Windows(WSL)

後述のGit Bashを使う方法よりこのWSLを使う方法が後々役に立つと思うのでこちらをおすすめします。ただし，WSLのセットアップを最初から行う場合それなりに時間がかかったり，各々のPCの環境によってはGit Bashを使わざるを得ないことがあるので，自分には難しいかもという人はGit Bashを使う方法をやってみてください(個人的にはWSLでLinuxに慣れてほしい)

#### まだWSLの環境構築をしていない人

まず，WSLのセットアップが終わっていない人は弊部の https://d3bu.net/blog/2023-03-arch-on-wsl/ を参考にWSLの環境構築をしてください。

↑の方法の環境構築なら既にGitはインストールされているので次の初期設定まで飛ばしてください。

#### 他の方法でWSLの環境構築をした人

Ubuntuなど他の方法でWSLの環境構築をした人は，以下のコマンドでGitをインストールしてください。

```shell
$ sudo apt install git
```
これでインストールができます。

諸々の設定が終わった人はターミナルで`git`コマンドを実行してみてください。
gitはこう使うんだよ〜みたいなログが出力されればインストール成功です。



### Windows(Git Bash)

まずは、以下のサイトからGitをダウンロードしましょう。

https://git-for-windows.github.io/

以下の画面以外はそのままNextを押しまくってください。

![](https://hackmd.io/_uploads/HySpLSWMp.png)

ここは真ん中のRecommendedを選んでください。

![](https://hackmd.io/_uploads/BJJJDH-za.png)

ここはUse bundled OpenSSHを選んでください。

![](https://hackmd.io/_uploads/rylrPSZfT.png)

Checkout Windows-style, commit Unix-style line endingsを選んでください。

![](https://hackmd.io/_uploads/SyC8PBWfT.png)

Use MinTTY (the default terminal of MSYS2)を選んでください。

![](https://hackmd.io/_uploads/Hyk_PrZMp.png)

Defaultを選んでください。

![](https://hackmd.io/_uploads/Hy15DrZG6.png)

Git Credential Managerを選んでください。

![](https://hackmd.io/_uploads/H1SiDSZza.png)

両方選んでください。

![](https://hackmd.io/_uploads/SkTnwrWz6.png)

そのままInstallを選択してください。

あとはFinishを押して終わりです。

![](https://hackmd.io/_uploads/rJmxOHbMa.png)

こんな感じでGit Bashが追加されていれば成功です。

### macOS

Homebrewが入っていない人は https://qiita.com/zaburo/items/29fe23c1ceb6056109fd を参考にインストールしてください。

Homebrewがインストールできたら以下のコマンドを実行してください。

```shell
$ brew install git
```
これでGitがインストールできます。

## Gitの初期設定

Gitにユーザー名とメールアドレスを登録します。Gitはこの情報を使って誰が編集したかを判断します。

```shell
$ git config --global user.name "<user_name>"
$ git config --global user.email "<email_address>"
```
`<>`の中には自分の情報を入れてください。

## GitHubについて

公式ページにはこう書いています。

> GitHubは、ユーザのみなさんからヒントを得て作成された開発プラットフォームです。

簡単に言えばGitの仕組みを利用してチーム開発をもっと楽にできるようにしたり，たくさんの人のソースコードを共有できるようにするためのツールです。

Gitを使う上でほぼ必須のツールなので使えるようにしましょう。

## GitHubの初期設定

### アカウントの作成

まずアカウントを作りましょう。

以下のリンクからGitHubにアクセスしてください。

[GitHub](https://github.com/)

アクセスしたら右上のSign upをクリックし，案内に従ってアカウントを作ってください。

:::info
登録するメールアドレスを学校のrアカウントにしておくと，いろいろな恩恵を受けることができるので，特に事情が無ければ学校のアカウントで登録しましょう。
:::

### GitHub CLIのインストール

GitHub CLIとはGitHub関連の操作をコマンドでできるようにするために入れるものです。今回は認証のために使います。認証以外にも便利な機能がたくさんあるので調べてみてください。

#### macOSの人

```shell!
$ brew install gh
```
これでGitHub CLIがインストールできます。

#### Windowsの人

以下のリンクからインストーラをダウンロードする。

https://cli.github.com/

![image.png](https://hackmd.io/_uploads/By-_Wad7a.png)

インストーラを起動し，指示の通りにインストールする。

### GitHub認証

それでは自分のpcとGitHubアカウントを紐付けていきましょう。

1. `gh auth login`を実行してください。
矢印キーで選択可能(今回はGithub.comを選択し、Enter)

```shell
$ gh auth login
? What account do you want to log into?
> GitHub.com
  GitHub Enterprise Server
```

2. 矢印キーで選択可能(今回は SSH を選択し、Enter)

```shell
? What is your preferred protocol for Git operations?  [Use arrows to move, type to filter]
  HTTPS
> SSH
```

3. Y を選択( 鍵を作りますか？という内容)

```shell
? Generate a new SSH key to add to your GitHub account? (Y/n)
```

4. 任意でパスワードを入力

```shell
? Enter a passphrase for your new SSH key (Optional)
```

:::info
パスワードを設定すると毎回接続時にパスワード入力が必要になるため，個人用端末ならば無しでも構わない。共有端末ではパスワードを設定することを推奨する。
:::

5. 鍵の名前を入力してください。

```shell
? Title for your SSH key: (GitHub CLI)
```

ここでEnterを押すと鍵が生成されます。

6. 矢印キーで選択可能(今回は Login with a web browserを選択)

```shell
? How would you like to authenticate GitHub CLI?  [Use arrows to move, type to filter]
> Login with a web browser
  Paste an authentication token
```

7. ここでone-time code: *****をコピーしてEnterを押下

```shell
! First copy your one-time code: *******(
Press Enter to open github.com in your browser...
```

8. ブラウザ上の githubログイン画面に遷移するので、ログインする。
9. ログインが完了すると、次の画面が表示されるので手順7のワンタイムコードを入力する。

![image.png](https://hackmd.io/_uploads/ryen6p_m6.png)

10. 入力が完了すると、次の画面が表示されるので、画面左下の"Authorized github"を選択する

![image.png](https://hackmd.io/_uploads/H1jAaT_Q6.png)


 これであなたのPCとGitHubが繋がりました。

### リポジトリについて

リポジトリとは、ファイルやディレクトリの状態を記録する場所です。保存された状態は、内容の変更履歴として格納されています。変更履歴を管理したいディレクトリをリポジトリの管理下に置くことで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができます。















<!-- アーカイブ 

### GitHubにSSHキーを登録する

GitHubでは認証のため，SSHキーを登録する必要があります(いわゆる公開鍵認証)。その設定をやっていきましょう。

まずターミナルでホームディレクトリまで移動してください。

そこに`.ssh`ディレクトリがあるか確認してください。無い場合は作成してください。

作成したら`.ssh`ディレクトリまで移動してください。ここに鍵を作っていきます。

以下のコマンドを実行してください。

```shell
$ ssh-keygen -t ed25519
```

このコマンドを実行するといろいろ出てくるので全部Enterを押してください。
:::info
共有PC等を使っている方はパスワードを設定しておいたほうがいいかもしれません。
:::

これで鍵が作れます。

では`id_ed25519`と`id_ed25519.pub`が生成されていることを確認してください。

ここで，**必ず`.pub`が付いている方**をコピーしてください
-->