# Git

ご自身のコンピュータで、Git が利用できるようにします。

# 摘要

  • Git をインストールしてコマンドを実行できるようにする。
  • GitHub と SSH キーを連携する。
WIN

# 動画で確認(Windows)

補足

この動画では Git のグローバル初期設定が説明されていません。このページ下部の「初期設定 メールアドレスと名前の登録」も確認してください。

WIN

# インストーラーのダウンロード

https://git-scm.com/downloads (opens new window) から OS にあったインストーラをダウンロードし、起動します。

# インストーラオプション画面(Windows)

このインストーラオプションは Windows 10 64 bit のスクリーンショットです。 インストーラのバージョンは 2.35.1.2 です。

# Information

  • 「 Only show new options 」 が表示されている場合は、チェックを外しておきます。

image

# Select Components

  • 画面のようにチェックを入れます。

image

# Choosing the default editor used by Git

  • Use Visual Studio Code as Git's default editor を選択します。

image

# Adjusting the name of the initial branch in new repositories

  • Override the default branch name for new repositories にチェックを入れます。
  • 値は 「 main 」 にしておきます。

image

# Adjusting your PATH environment

  • 変更しません。

image

# Choosing the SSH executable

  • 変更しません。

image

# Choosing HTTPS transport backend

  • 変更しません。

image

# 【重要】 Configuring the line ending conversions

  • Checkout as-is, commit as-is を選択します。

image

重要 (必ずお読みください)

改行コードに関する設定です。「Checkout as-is, commit as-is」を選択してください。
※「Checkout as-is, commit Unix-style line endings」でもおそらく問題ありません。

Q. このオプションを設定せずにインストールしてしまった。
A. あとから設定を変更できます。 PowerShell で 以下のコマンドを入力してください。

# Checkout as-is, commit as-is にする場合(推奨します)
$ git config --global core.autocrlf false

# Checkout as-is, commit Unix-style line endings にする場合
$ git config --global core.autocrlf input

# デフォルトにする場合(おすすめしません)
$ git config --global core.autocrlf true
1
2
3
4
5
6
7
8

Q. 改行コードとは何ですか?
A. 普段文字入力時に利用する「改行」ですが、これにも文字コードがあります。 Windows のファイル管理システムは標準で CRLF というコードを使用しています。 Mac や Linux (WSL) は LF というコードを使用しています。実際には CRLF\r\nLF\n で表記されます。 両方の環境で利用される可能性がある場合、LF(\n) の利用が一般的であり、Web では大抵の場合 LF(\n) に統一して問題ありません。

Q. どのような問題を回避しますか?
同一の環境下で使用する場合、問題は発生しませんが、 GitHub 等、様々な人や環境で作成されたプログラムコードがある状況では、混ざる恐れがあります。 このインストーラのオプションでは、デフォルトで「Checkout Windows-style, commit Unix-style」となっています。 これは、 GitHub から Clone や Pull するときに、 LFCRLF に変換し、GitHub に Commit するときに CRLFLF に変換するという設定です。 一見デフォルトの設定にしておくことで、 GitHub に CRLF のファイルが混ざらないように思えるため問題がないように見えます。しかし問題は、自分のコンピュータで発生します。 WSL や Docker を使用していると、エディターやファイルは Windows 環境なのに、実行環境は Linux という状況になる場合があります。つまり、 Git の機能でローカルのファイルが 勝手に CRLF に変換されてしまうと、開発中の Linux 仮想環境の中で、予期せぬデータ(CRLF(\r\n) のうち CR(\r) という謎のデータ配列)がプログラムコードの中に混ざることになります。 この問題が発生したときに表示されるエラーは、直感と反している場合があります。そのため原因の発見が難しく、なるべく避けたいということです。詳細やその他の問題は こちらの記事 (Qiita) (opens new window) をご覧ください。

Q. この設定がなぜ重要なのですか?
A. 改行コードの自動変換機能を無効にしたということを理解しておく必要があるためです。 Windows の標準の改行コードは CRLF です。つまり、使用するエディタによっては CRLF で保存されます。 Git の自動変換機能を無効にすると、ファイルにCRLF が含まれていても、 Commit 時に変換されず、そのまま Commit されます。これはこれで致命的な問題です。よって、そのようなことにならないように、使用するエディタのデフォルトの改行コードが LF(\n) となっていることを確認してください。 Visual Studio Code は初期設定で CRLF ですが、Visual Studio Code 設定と拡張機能 のページにある、設定ファイルが適用されていれば、デフォルトの改行コードが LF となリます。 (おすすめの設定構成の "files.eol": "\n" というオプションです。 )プログラムを書く際には、うっかりメモ帳などでファイルを編集しないようにも注意してください。

Q. 「Checkout as-is, commit Unix-style line endings」のほうが良さそうです。
A. はい、問題ないと思います。これは、 GitHub から Clone や Pull するときは変換しませんが、GitHub に Commit するときは CRLFLF に変換するという設定です。 これであれば、うっかり CRLF の改行コードを Commit することはなくなります。 ただし、場合によっては CRLF ファイルを Commit したい場合があります。Web 開発ではあまりありませんが、本番サーバーの実行環境で Windows 専用のアプリケーションを実行する場合、改行コードが LF に変換されることにより、改行が認識されず、また、LF(\n) という謎のデータ配列がプログラムコードの中に混ざることになります。Windows に依存する開発を行わない場合は問題にならないため、ご自身の状況や経験に合わせて設定を選んで頂いて問題ありません。

# Configuring the terminal emulator to use with Git Bash

  • 変更しません。

image

# Choose the default behavior of git pull

  • 変更しません。

image

# Choose a credential helper

  • 変更しません。

image

# Configuring extra options

  • 変更しません。

image

# Configuring experimental options

  • 変更しません。

image


インストールします。

MAC

# Git のインストール(Mac)

ターミナルを開き以下のコマンドを実行してください。

$ git --version
1

バージョンは表示されたら Git は利用可能な状態です。 以下のような画面が表示された場合は、画面に従い、開発ツールのインストールを完了してください。 開発ツールをインストール後に、もう一度コマンドを入力し、バージョンが表示されれば Git のインストールは完了です。

image

# 初期設定

# メールアドレスと名前の登録(動画の補足)

Windows ユーザーは WSL ターミナルと PowerShell、Mac ユーザーは ターミナルで 以下のコマンドを入力して、 Git の設定を完了してください。 (you@exsample.comYour Name は置き換えてください。)

$ git config --global user.email "you@exsample.com"
$ git config --global user.name "Your Name"
1
2

例: Ubuntu (WSL Git)

image

例: PowerShell (Windows Git)

image


設定ができているかどうかは以下のコマンドで確認できます。

$ git config --global user.email
$ git config --global user.name
1
2

例: Ubuntu (WSL Git)

image

例: PowerShell (Windows Git)

image

# SSH キーペアの作成

WIN

Windows ユーザーは Windows 環境と WSL 環境で 2 回設定が必要です。

  • Windows 環境をセットアップする場合は Windows Tereminal で PowerShell を開きます。
  • WSL 環境をセットアップする場合は Windows Terminal で Ubuntu を開きます。
MAC

Mac ユーザーは Terminal を開いてください。

作成済の方へ

既に作成済みの方はご自身の状況に合わせてセットアップする内容を判断してください。

まず、以下のコマンドを入力して、SSH キーがあるか確認してください。known_hosts は SSH キーではありません。

$ ls -l ~/.ssh/
1

キーがある場合、 GitHub の設定 (opens new window) に SSH キーペアのうちパブリックキーが登録されているか確認してください。 GitHub に登録されていない場合、以下のオプションを選択してください。

  • このセクションの通り新しくキーペアを作成します。保存先のファイル名が重複しないように注意してください。
  • 作成済みのキーペアのうちパブリックキーを GitHub に登録します。
    これは、他のサービスで使用している SSH キーを共有して使用することを意味するかもしれません。セキュリティレベルは低下しますが、ご自身や会社のセキュリティポリシーに則り判断してください。

以下のコマンドを入力して SSH キーを作成します。{メールアドレス} はご自身のものに置き換えてください。

$ ssh-keygen -t ed25519 -C "{メールアドレス}"
1

例:

image

いくつか質問されます。そのまま Enter を押下すると、デフォルト値が適用されます。

  • Enter file in which to save the key: SSH キーをどこに生成するか指定します。
  • Enter passphrase: SSH キー使用時のパスワードを設定します。
  • Enter same passphrase again: パスワードの確認です。

例:

image

これで、SSH キーペア(プライベートキーとパブリックキー)が作成されました。

以下のコマンドを入力して、作成した SSH キーペアのうちのパブリックキーを出力します。 ファイル名を変更した場合は、適宜変更してください。

$ cat ~/.ssh/id_ed25519.pub
1

出力された文字をコピーします。

# GitHub へキーを登録

github.com → 右上のプロフィールアイコン → SettingsSSH and GPG keys と進み、SSH キー設定画面 (opens new window)を表示します。

「New SSH Key」をクリックして登録画面を表示し、Key 欄にコピーした値を貼り付けます。

Title はわかりやすい名前をつけておきます。

アドバイス

登録後に値を変更・確認できません。Title はコンピュータの識別子とユーザー名を入れておくことをおすすめします。

※ コンピュータの識別子の例:「Dynabook ノート PC」「リビングのデスクトップ PC」「2 代目自作 PC」等

image

「Add SSH Key」をクリックして登録します。