====== Git for Windows (Git Bash) ======
Version 2.27
--- //[[http://www.y2sunlight.com|y2sunlight]] 2020-06-05//
[[git2:client:windows|Git Windowsクライアント に戻る]]
本編では、Gitクライアントの基本的なツールとして Git Bash を推奨します。Git for Windows(旧称 msysGit)をインストールすると次の3つのアプリケーションがインストールされます。
* Git Bash — Git の CLIクライアント(Bashシェル)
* Git CMD — Git の CLIクライアント(Windowsコマンドプロンプト)
* Git GUI — Git の GUIクライアント
Git のGUIクライアントとしては他にも優れたものが多く、Git for Windowsを利用する目的としては、CLIクライアントを利用する場合が多いのではないでしょうか。Git Bash は Gitコマンドの搭載されたBash シェルです。従って、Linux や Mac のBashシェルと同等の利用ができるので、Bashシェルに慣れ親しんでいる人には非常に使い易いCLIと言えます。
Git Bash を推奨する最大の理由は、gitコマンドにあります。gitコマンドは、どんなクライアント(Windows, Linux, Mac)でも同じなので使用例がネット上に豊富で、且つ[[https://git-scm.com/docs|マニュアル]]や[[https://git-scm.com/book/en/v2|ドキュメント]]も整備されています。日常的には GUIクライアントやEDIからの利用が多くなると思いますが、Git Bash も是非インストールしておきたいGitクライアントです。
クライアント環境
* Windows10 Pro
関連記事
* Git for Windows (Git Bash)
* [[git2:client:windows:source-tree|SourceTree]]
* [[git2:client:windows:eclipse|Eclipse EGitプラグイン]]
リンク
* [[https://gitforwindows.org/|Git for windows]] --- Git for windowsの本家
* [[https://qiita.com/gold-kou/items/7f6a3b46e2781b0dd4a0|いまさらだけどGitを基本から分かりやすくまとめてみた]] --- 初学者(筆者)向けで分かり分かり易かったです(感謝!!)
----
===== パッケージの入手 =====
Git for Windows のサイト( [[https://gitforwindows.org/]] )にアクセスします。
[{{:git2:client:windows:git-for-windows01.png?nolink}}]
■ 画面上の[Download]をクリックすると、以下のインストーラがダウンロードされます(2020-06-06時点)。
インストーラ
{{fa>file-o}} ''Git-2.27.0-64-bit.exe''
\\
===== インストール =====
インストーラを起動します。
=== ライセンス ===
[{{:git2:client:windows:git-for-windows02.png?nolink}}]
■ [Next>]を押します。
=== インストール場所の選択 ===
[{{:git2:client:windows:git-for-windows03.png?nolink}}]
■ 変更がなければ[Next>]を押します(必要に応じて変更して下さい)。
=== コンポーネントの選択 ===
[{{:git2:client:windows:git-for-windows04.png?nolink}}]
■ このままで[Next>]を押します。本編では、主に Git Bashを使うので問題ありません。
=== スタートメニューの選択 ===
[{{:git2:client:windows:git-for-windows05.png?nolink}}]
■ 変更がなければ[Next>]を押します(必要に応じて変更して下さい)。
=== デフォルトエディタの選択 ===
[{{:git2:client:windows:git-for-windows06.png?nolink}}]
■ この設定はコミット時のコメント入力などに使用されるエディタの選択です。\\
■ このままで[Next>]を押します。Vimが指定されていますが、後でも設定できるので問題ありません。
=== PATH環境変数の設定 ===
[{{:git2:client:windows:git-for-windows07.png?nolink}}]
■ この設定はコマンドプロンプトなどでgitコマンド使用する際のものです。\\
■ このままで [Next>]を押します。[Git from the command line also from 3rd-party software]で問題ありません。\\
■ 尚、PATH環境変数は後で手動で変更できます。
=== HTTPS通信のバックエンドの選択 ===
[{{:git2:client:windows:git-for-windows08.png?nolink}}]
■ HTTPS通信で使用するSSL/TLSのライブラリーを選択します。\\
■ このままで [Next>]を押します。[Use the OpenSSL library]で問題ありません。\\
=== 改行変換の設定 ===
[{{:git2:client:windows:git-for-windows09.png?nolink}}]
■ チェックアウト時、コミット時の改行変換に関する設定です。環境に応じて変更して下さい。
* ''Checkout Windows-style,commit Unix-style line endings'' : チェックアウト時はWindowsスタイル(CRLF)に、コミット時はUnixスタイル(LF)に変換
* ''Checkout as-is, commit Unix-style line endings'' : チェックアウト時は無変換、コミット時はUnixスタイル(LF)に変換
* ''Checkout as-is, commit as-is'' : 両方の場合で無変換
■ 筆者の場合はWindos/Linux環境共にGitを使用するので[Checkout as-is, commit as-is]を選択しました。 \\
■ [Next>]を押します。
=== Git Bashで使用する端末の設定 ===
[{{:git2:client:windows:git-for-windows10.png?nolink}}]
■ Git BashでMinTTYを使うかWindowsのデフォルト(コマンドプロンプト)を使うかを選択します。\\
■ このままで [Next>]を押します。[Use MinTTY]で問題ありません。\\
=== Push のデフォルト動作の設定 ===
[{{:git2:client:windows:git-for-windows11.png?nolink}}]
■ ''git push'' 時の動作を次の中から選択します。
* ''Default(fast-foward or merge)'' : デフォルト動作は可能ならfast-fowardし、それ以外はマージします
* ''Rebase'' : リベースします
* ''Only ever fast-foward'' : 常にfast-fowardします。できなければ失敗になります
■ 後でも設定できるので[Default(fast-foward or merge)]で問題ありませんが、必要に応じて変更して下さい。\\
■ [Next>]を押します。
=== その他の設定 ===
[{{:git2:client:windows:git-for-windows12.png?nolink}}]
■ 以下の設定を選択します。
* ''Default(fast-foward or merge)'' : キャッシュの有効化を行います
* ''Default(fast-foward or merge)'' : Windowsの用の[[https://github.com/Microsoft/Git-Credential-Manager-for-Windows|Git Credential Manager]] を有効にします
* ''Enable sysmbolic links:'' : [[https://github.com/git-for-windows/git/wiki/Symbolic-Links|シンボリックリンク]]を有効にします
■ 後でも設定できるのでそのままで問題ありませんが、必要に応じて変更して下さい。\\
■ [Next>]を押します。
=== お試しオプションの設定 ===
[{{:git2:client:windows:git-for-windows13.png?nolink}}]
■ 実験的なオプション機能の選択です。興味のある人はオプションにチェックして見て下さい。\\
■ このままで [Install]ボタンを押します。
=== インストール中 ===
[{{:git2:client:windows:git-for-windows14.png?nolink}}]
■ インストール中です。
=== インストールの終了 ===
[{{:git2:client:windows:git-for-windows15.png?nolink}}]
■ [View Release Notes]のチェックを外します(興味ある方はご覧下さい)。\\
■ [Next>]を押すと、画面が閉じインストールは終了します。
=== Gitの起動 ===
Git の起動はスタートメニューからできます
[スタートメニュー]
* [Git]
* Git Bash --- Git の CLI(Git Bash) が開きます
* Git CMD --- Git の CLI(コマンドプロンプト) が開きます
* Git FAQs --- Git の [[https://github.com/git-for-windows/git/wiki/FAQ|FAQ]] が開きます
* Git GUI --- Git の GUI が開きます
* Git Release Notes --- Git の Release Notes が開きます
\\
===== 初期設定 =====
==== ホームディレクトリ ====
Git はWinodwsのホームディレクトリを使用します。ここには、以下で説明する[[#global レベル|globalレベル]]の設定ファイル(.gitconfig)が保存されてます。ホームディレクトリの設定は環境変数 ''HOMEPATH'' に格納されています。
C:\>set HOMEPATH
HOMEPATH=\Users\sunlight
\\
==== 設定ファイル ====
Gitの[[https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup|設定ファイル]]は、以下の3種類があります。
=== system レベル ===
システム全体の設定を保存します \\
【所在】
* ''{Git for Windowsのインストールフォルダ}¥etc¥gitconfig''
* ''{C:\ProgramData}¥Git¥config''
【確認方法】''git config --system --list''
=== global レベル ===
ユーザ全体の設定を保存します \\
【所在】''{ホームディレクトリ}¥.gitconfig''\\
【確認方法】''git config --global --list''
=== local レベル ===
ユーザ全体の設定を保存します \\
【所在】''{リポジトリディレクトリ}¥.git¥config''\\
【確認方法】''git config --local --list''\\ (実行はリポジトリフォルダ内で行って下さい)
これらの設定ファイルはGitサーバーとGitクライアントで共通です。クライアントとしてよく利用するのは、globalレベル です。また、local レベルの設定もリポジトリ毎に認証情報を埋め込む際に利用するかもしれません。system レベルについては利用する機会は希だと思います。
=== 設定方法 ===
Gitの設定は ''git config'' コマンドで行います。また、直接設定ファイルを編集することも出来ます。
git config --global {設定キー} {設定値} # global レベルの設定
git config --local {設定キー} {設定値} # local レベルの設定(リポジトリフォルダ内で実行して下さい)。--local は省略できます
=== 確認方法 ===
以下のコマンドで、全ての設定を確認できます。また、''--show-origin'' オプションを指定すると設定の出所(どの設定ファイル由来か)も確認できます。local レベルを含む設定を表示する場合は、リポジトリフォルダ内で実行して下さい。
git config --list # 全ての設定を確認(local レベルも表示するにはリポジトリフォルダ内で実行して下さい)
git config --list --show-origin # どの設定ファイルに由来するかも表示する場合
\\
==== 最初にすべき設定 ====
Gitクライアントをインストールして最初にすべき事は、ユーザ名とメールアドレスを設定することです。この設定はコミット時に使用されます。
git config --global user.name "y2sunlight" # ユーザ名
git config --global user.email y2sunlight@y2sunlight.com #メールアドレス
global レベルの設定を行うことによって、システムで実行する全てのユーザ名とメールアドレスは、この情報を使用するようになります。この設定を特定のリポジトリで上書きする場合は、リポジトリディレクトリ内で --globalオプションなしでコマンドを設定を変更して下さい。
\\
==== 公開鍵の生成 ====
Gitサーバーとの接続にSSHプロトコルを使用する場合は、公開鍵を作成する必要がありますが、本編ではGitサーバーにSmart HTTPを使用しているので、その必要はありません(詳細は「[[git2:server|Gitサーバーの構築 - Gitデーモン/Smart HTTP]]」をご覧ください)。
公開鍵の生成については、本編の「[[github:top|GitHub]]」を参照して下さい。
\\
===== Git Bash の簡単な使用例 =====
ここでは、Git Bashの使い方の例として「[[git2:server#接続テスト1|Gitサーバーの構築 - Gitデーモン/Smart HTTP]]」で作成したsandboxリポジトリに接続してみます。
Git Bash はスタートメニューの[Git][Git Bash]から起動することもできますが、コンテキストメニューを使った方が便利です。エクスプローラで目的のフォルダを開きます。
[{{:git2:client:windows:git-for-windows20.png?nolink}}]
■ マウス右クリックして[Git Bash Here] を選択します。
[{{:git2:client:windows:git-for-windows21.png?nolink}}]
■ Git Bashが開くので、ここでコマンドを入力します。
=== git clone ===
共有リポジトリ ''sandbox.git'' からプロジェクトを取得します。
git clone http://192.168.1.100/git/sandbox.git
=== ファイルの編集 ===
sandbox内のファイルを編集します。
=== git add ===
フォルダ sandbox に移動して編集したファイルをインデックスに追加します。
cd sandbox
git add .
=== git commit ===
インデックスに登録されているファイルをコミットします。
git commit -m "Comment for commit"
=== git push ===
コミット済の内容を共有リポジトリにプッシュします。
git push
\\