- Git
Git Bashとは?使い方・インストールの全選択肢とエラー対処
結論
Git Bashは、Windowsで Git と bash(Linux と同じ形のコマンド)を使うためのターミナルです。Git for Windows をインストールすると一緒に入り、ls・cd・grep・ssh などと git を同じ画面で使えます。
この記事でわかること
- インストール画面の全選択肢の意味と既定値(定義ファイルで確認)
- 基本コマンド・改行コード・文字化けのエラー原文と直し方
- SSH鍵の作成、VS Code・PowerShell・WSL との使い分け
Git Bash は「Git」「bash」「よく使う Linux のコマンド」をひとまとめにして、Windows で動くようにしたものです。中身の関係を図にします。
flowchart TD
G[Git for Windows<br>インストーラー] --> B[Git Bash<br>mintty の窓]
G --> C[Git CMD]
G --> U[Git GUI]
B --> S[bash<br>シェル]
S --> T[ls cd grep ssh vim など<br>MSYS2 のコマンド]
S --> X[git.exe]
C --> X
よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| Git Bashとは | Git for Windows に入っている bash のターミナル | Git Bashとは |
| Git Bash インストール | gitforwindows.org から入手。迷う画面は既定のままで進められる | インストール手順・選択肢 |
| PATH の画面はどれを選ぶ | 既定の「Git from the command line and also from 3rd-party software」 | インストール画面の選択肢 |
| Git Bash 使い方(コマンド) | ls・cd・pwd・cp・mv・rm・grep・cat を Linux と同じに使う | 基本コマンド早見表 |
| C ドライブへの移動 | cd /c/Users/名前。C:\ の書き方は崩れる |
パスの書き方 |
| 日本語が化ける | ファイル名は core.quotepath false、中身は文字コードを合わせる |
文字化けの原因と直し方 |
| VS Code で使う | 「Terminal: Select Default Profile」で Git Bash を選ぶ | VS Codeのターミナル |
| WSL・PowerShell との違い | Git と軽い作業は Git Bash、Linux そのものが要るなら WSL | 違いと判断表 |
確認環境:Git for Windows はこの環境(Linux)では動かせないため、インストール画面の選択肢と既定値は、Git for Windows 公式のインストーラー定義ファイル(GitHub の git-for-windows/build-extra リポジトリの installer/install.iss、2026年10月29日時点の main)を読んで1つずつ確かめました。版と既知の問題は公式サイト gitforwindows.org・FAQ・リリースノート(v2.56.0(4)、2026年10月26日)、プロンプトと既定のエイリアスは同リポジトリの git-extra/git-prompt.sh・aliases.sh・bash_profile.sh、ターミナルの操作は mintty のマニュアル、パスの変換は MSYS2 のドキュメントで確かめています。bash と git のコマンドは、Ubuntu 24.04.5 LTS の上で GNU bash 5.2.21・git 2.43.0・OpenSSH 9.6p1・vim 9.1・GNU grep 3.11・coreutils 9.4・file 5.45 を使い、作業用のフォルダーの中だけで実行しました(root で実行。全体の git 設定は変えず、GIT_CONFIG_GLOBAL で作業フォルダーの設定ファイルを使用)。Windows の画面そのもの・/c/ への変換・mintty の表示は動かしていません。VS Code は公式ドキュメント、SSH 鍵の手順は GitHub Docs、WSL は Microsoft Learn で確かめました。図は mermaid 11.16.0 で描画を確かめています(確認日 2026年10月29日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Git Bashとは?使い方・インストールの全選択肢とエラー対処」
Git Bashとは(Git for Windowsとの関係)
この節では、Git Bash が何で、Git for Windows とどういう関係なのかが分かります。
Git Bash は、Git for Windows に含まれる「bash(Linux や Mac で使われるシェル)を Windows で動かす環境」です。 公式サイトは「Git for Windows provides a BASH emulation used to run Git from the command line.」(コマンドラインから Git を動かすための BASH のエミュレーションを提供する)と説明しています。
- Git for Windows:インストーラーの名前。Git 本体・Git Bash・Git GUI・Git Credential Manager などをまとめて入れる。
- bash:コマンドを受け取って実行する「シェル」の1つ。Linux の多くで標準。
- MSYS2:Linux のコマンドを Windows で動かす土台。公式の技術資料は「Git for Windows is essentially a subset of MSYS2」(Git for Windows は基本的に MSYS2 の一部)と書いています。
- mintty:Git Bash の黒い窓(ターミナル)の正体。インストール画面で選ぶ既定のターミナル。
Git Bash でできること
git のすべてのコマンド
ls・grep・find・ssh・vim など Linux 風のコマンド
シェルスクリプト(.sh)の実行
Windows のファイルを /c/ から扱う
Git Bash でできないこと
apt などで Linux のソフトを入れる
Linux 用のバイナリを動かす
Linux と完全に同じ挙動(パスの変換などが入る)
Linux サーバーそのものの代わり(それは WSL)
Git Bashのインストール手順(ダウンロードから起動まで)
この節では、Git Bash を入れるまでの流れと、どのファイルを選べばよいかが分かります。
Git Bash だけを単独で入れる方法はなく、Git for Windows をインストールすると一緒に入ります。 2026年10月29日時点の最新版は 2.56.0(4)(2026年10月26日公開)で、公式の FAQ は 2.56.0(4) より前の版はセキュリティの修正のため更新を強く勧めています。
gitforwindows.org を開く
「Download」から GitHub のリリースのページへ進む。検索広告の配布サイトではなく、公式から取る。
インストーラーを選ぶ
普通の 64bit の PC は Git-2.56.0.4-64-bit.exe、ARM の PC(Snapdragon など)は Git-2.56.0.4-arm64.exe。管理者権限なしで置くだけなら PortableGit もある。
exe を実行して画面を進める
ライセンスの表示から始まり、選択肢の画面が続く。各画面の意味は次の節の表で確かめられる。
Install を押して終わりを待つ
最後の画面に「Launch Git Bash」(既定はチェックなし)と「View Release Notes」がある。
Git Bash を起動して git --version
スタートメニューの「Git」→「Git Bash」(ホームで開く)、またはフォルダーを右クリックして「Open Git Bash here」から開く。同じフォルダーに Git CMD・Git GUI もある。git --version で版が出れば完了。
入れたあとの更新は、Git Bash で git update-git-for-windows を実行すると、新しい版を調べてインストールを案内してくれます(FAQ)。MSI 形式の配布はなく、exe とポータブル版だけです。
インストール画面の選択肢(1画面ずつの意味とおすすめ)
この節では、インストール中に出るすべての画面について、何を聞かれていて、既定は何か、変えるべき場面はどこかが分かります。
迷ったら既定のままで進めて問題が起きにくい作りです。 次の表の「既定」は、インストーラーの定義ファイル(install.iss)で初めてのインストール時に選ばれる値です。2回目以降は前回の選択が引き継がれます。
| 画面(英語の題名) | 聞かれていること | 既定 | 変える場面 |
|---|---|---|---|
| Information | ライセンス(GNU GPL v2)の表示 | Next | なし |
| Select Destination Location | 入れる場所 | C:\Program Files\Git | C ドライブの容量が足りないとき |
| Select Components | アイコン・右クリックメニュー・Git LFS など | 下の表のとおり | デスクトップのアイコンが欲しいとき |
| Select Start Menu Folder | スタートメニューのフォルダー名 | Git | 作らないなら「Don't create a Start Menu folder」 |
| Choosing the default editor used by Git | コミットメッセージを書くエディター | Vim | Vim に慣れていないなら VS Code か Nano |
| Adjusting the name of the initial branch in new repositories | git init で作るブランチ名 | Let Git decide(master) | main にそろえるなら Override で main |
| Adjusting your PATH environment | どこから git を使えるようにするか | Git from the command line and also from 3rd-party software | 通常は変えない |
| Choosing the SSH executable | 使う ssh.exe | Use bundled OpenSSH | PuTTY を使う会社なら Plink |
| Choosing HTTPS transport backend | HTTPS の証明書の確かめ方 | Use the native Windows Secure Channel library | ca-bundle.crt で管理したいなら OpenSSL |
| Configuring the line ending conversions | 改行コードの変換 | Checkout Windows-style, commit Unix-style(autocrlf=true) | .gitattributes でそろえるチームの方針に従う |
| Configuring the terminal emulator to use with Git Bash | Git Bash の窓 | Use MinTTY | python・node を対話で多用するなら Windows の窓 |
| Choose the default behavior of `git pull` | pull のときのまとめ方 | Merge | 履歴を一直線にしたいチームは Rebase |
| Choose a credential helper | パスワード・トークンの保存 | Git Credential Manager | SSH だけで使うなら None も可 |
| Configuring extra options | ファイルのキャッシュ・シンボリックリンク | キャッシュは有効、リンクは自動判定 | 通常は変えない |
- 「Choosing the SSH executable」は、PuTTY の設定が登録されているか、PATH に ssh.exe がある PC でだけ出ます。 出ない PC では、Git に同梱の OpenSSH が使われます。
- 「Configuring experimental options」(試験的な機能。疑似コンソールなど)は、版によって出ます。既定はどれもチェックなしです。疑似コンソールの説明には「not quite stable yet」(まだ安定していない)とあります。
- マンダトリー ASLR を有効にした PC だけ、「Security options」の画面が追加で出ます。
- 2回目以降のインストールでは「Only show new options」(新しい選択肢だけ見せる)のチェックが出ます。
Select Components の既定
| 項目 | 既定 | 意味 |
|---|---|---|
| Additional icons → On the Desktop | なし | デスクトップに Git Bash のアイコン |
| Windows Explorer integration(Open Git Bash here・Open Git GUI here) | あり | フォルダーの右クリックからその場所で開く |
| Git LFS (Large File Support) | あり | 大きなファイルを別に管理する拡張 |
| Associate .git* configuration files with the default text editor | あり | .gitconfig などをエディターで開く |
| Associate .sh files to be run with Bash | あり | .sh をダブルクリックで bash 実行 |
| Check daily for Git for Windows updates | なし | 毎日新しい版を調べる |
| Add a Git Bash Profile to Windows Terminal | なし | Windows Terminal に Git Bash を追加 |
PATH の3つの選択肢
| 選択肢 | git を使える場所 | 注意 |
|---|---|---|
| Use Git from Git Bash only | Git Bash だけ | PATH を変えない最も慎重な選択。VS Code などから git が見えない |
| Git from the command line and also from 3rd-party software(推奨・既定) | Git Bash・コマンドプロンプト・PowerShell・ほかのソフト | 最小限の git だけ PATH に足す |
| Use Git and optional Unix tools from the Command Prompt | 上に加えて Unix のコマンドもコマンドプロンプトで | Windows の find・sort が置き換わると警告が出る |
PATH の画面
インストーラー自身が赤字で「Only use this option if you understand the implications.」と書いている
Git Bashの起動・初期設定と.bashrc
この節では、Git Bash を開いたときの画面の読み方と、最初にする設定、.bashrc の置き方が分かります。
Git Bash の画面には、1行目に「ユーザー名@PC名 MINGW64 今いる場所 (ブランチ名)」、2行目に $ が出ます。 これは Git for Windows の git-prompt.sh の定義です。同じ並びの PS1 を Linux の bash で動かすと、次のようになりました。
root@vm MINGW64 /srv/s4/r17/t24/work/hello (feature/login)
$ git switch -q main
root@vm MINGW64 /srv/s4/r17/t24/work/hello (main)
$ cd ..
root@vm MINGW64 /srv/s4/r17/t24/work
$
Windows の Git Bash では、ホームの下にいるときは ~ と表示されます。MINGW64 は MSYS2 の環境の名前(変数 MSYSTEM)で、Git のリポジトリの中にいるときだけ最後にブランチ名が出ます。
最初にする git config
コミットに記録される名前とメールアドレスを登録します。登録しないままコミットすると、次のエラーになりました。
$ git commit -m "add a"
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'root@vm.(none)')
git config --global user.name "Taro Yamada"
git config --global user.email "taro@example.com"
git config --global core.quotepath false # 日本語のファイル名をそのまま表示
git config --list --show-origin # どのファイルの設定かを確かめる
.bashrc でエイリアスとプロンプトを足す
Git for Windows には既定で alias ls='ls -F --color=auto --show-control-chars' と alias ll='ls -l' が入っています(aliases.sh)。ファイルのコメントのとおり、自分で .bashrc・.bash_profile を作ると、この既定のエイリアスは使われなくなります。自分の設定はホームの ~/.bashrc に書きます。
# ~/.bashrc の例
alias ll='ls -alF'
alias gs='git status -sb'
export PROMPT_COMMAND='history -a' # VS Code でも履歴を残す(VS Code 公式の回避策)
手元で同じエイリアスを読み込ませた bash の結果です。
$ gs
## feature/login
M README.md
$ type ll
ll is aliased to `ls -alF'
.bashrc だけを作り .bash_profile が無いと、Git Bash は起動時に「WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.」と出し、.bashrc を読む .bash_profile を自動で作ります(bash_profile.sh)。一度だけ出る表示で、エラーではありません。
Git Bashの使い方:基本コマンド早見表(実行結果つき)
この節では、Git Bash でよく使うコマンドと、Windows のコマンドプロンプト・PowerShell での書き方の対応が分かります。
Git Bash のコマンドは Linux の bash と同じです。 次の表の左列をそのまま打ちます。
| やりたいこと | Git Bash | コマンドプロンプト | PowerShell |
|---|---|---|---|
| 今いる場所を表示 | pwd |
cd |
Get-Location(pwd) |
| ファイルの一覧 | ls -la |
dir |
Get-ChildItem(ls) |
| フォルダーを移動 | cd src・cd ..・cd ~ |
cd src |
Set-Location(cd) |
| フォルダーを作る | mkdir -p a/b |
mkdir a\b |
New-Item -ItemType Directory |
| コピー・移動 | cp・cp -r・mv |
copy・move |
Copy-Item・Move-Item |
| 削除 | rm・rm -r |
del・rmdir /s |
Remove-Item |
| 中身を表示 | cat・less・head・tail |
type・more |
Get-Content |
| 文字列を探す | grep -rn 語 . |
findstr |
Select-String |
| ファイルを探す | find . -name "*.txt" |
dir /s |
Get-ChildItem -Recurse |
作業用のフォルダーで実行した結果です($ の行が打ったコマンド)。
$ mkdir -p project/src
$ cd project
$ touch README.md
$ echo "hello git bash" > src/app.txt
$ ls -la
total 12
drwxr-xr-x 3 root root 4096 Oct 29 19:17 .
drwxr-xr-x 3 root root 4096 Oct 29 19:17 ..
-rw-r--r-- 1 root root 0 Oct 29 19:17 README.md
drwxr-xr-x 2 root root 4096 Oct 29 19:17 src
$ cp src/app.txt src/app_copy.txt
$ mv src/app_copy.txt src/memo.txt
$ ls src
app.txt
memo.txt
$ grep -rn "git" .
./src/memo.txt:1:hello git bash
./src/app.txt:1:hello git bash
$ find . -name "*.txt"
./src/memo.txt
./src/app.txt
$ rm src/memo.txt
> は上書き、>> は追記、| は前のコマンドの出力を次のコマンドに渡します。
$ echo "second line" >> src/app.txt
$ cat src/app.txt | wc -l
2
$ grep -n line src/app.txt
2:second line
$ tail -n 1 src/app.txt
second line
Tab で補完
ファイル名やブランチ名の途中で Tab を押すと続きを補う。Git Bash には git の補完も読み込まれる。
打ち間違いが減る
コピーと貼り付け
mintty では選ぶだけでコピーされる。貼り付けは Shift+Insert か右クリックのメニュー。
mintty の既定では Ctrl+V は貼り付けにならない
↑ で履歴
前に打ったコマンドを呼び出す。history で一覧、Ctrl+R で検索。
同じ操作を繰り返すとき
止める
Ctrl+C で実行中のコマンドを止める。exit で Git Bash を閉じる。
固まったように見えたら
mintty のマニュアルでは、コピーは Ctrl+Insert、貼り付けは Shift+Insert で、Ctrl+Shift+C・Ctrl+Shift+V は設定 CtrlShiftShortcuts=yes で有効にすると使えます。設定画面(Options)は窓の上で右クリックしたメニューから開きます。100個のコマンドの実行例は、関連記事「Linuxコマンド一覧|100個をカテゴリ別に実行結果つきで解説」で扱っています。
vim の終わり方
エディターの既定が Vim のまま git commit(-m なし)を打つと、Vim が開きます。i で入力、Esc を押してから :wq と Enter で保存して終了、:q! で保存せずに終了です。メッセージを空のまま閉じると、コミットは取り消されます。
$ GIT_EDITOR=true git commit --allow-empty
Aborting commit due to empty commit message.
エディターは後から git config --global core.editor "code --wait"(VS Code)のように変えられます。
Git Bashでのパスの書き方(/c/Users と C:\ の違い)
この節では、Git Bash で Windows のフォルダーを指定するときの書き方と、書き間違えたときに出る文言が分かります。
Git Bash では、C:\Users\taro を /c/Users/taro と書きます。 Git for Windows のリリースノートは「/c/(ドライブ名)は Windows の C:\ にあたる」と説明し、GitHub Docs も Windows の SSH 鍵の場所を /c/Users/YOU/.ssh/ と書いています。
| Windows の書き方 | Git Bash の書き方 |
|---|---|
C:\Users\taro(ホーム) |
~ または /c/Users/taro |
D:\work\app |
/d/work/app |
C:\Program Files\Git |
"/c/Program Files/Git"(空白があるので引用符) |
C:\Program Files\Git\usr\bin |
/usr/bin(Git Bash の中での見え方) |
バックスラッシュ(\)は bash では特別な記号なので、Windows の書き方をそのまま打つと崩れます。手元の bash で打った結果です。
$ cat C:\Users\taro\memo.txt
cat: 'C:Userstaromemo.txt': No such file or directory
$ cd My Documents
bash: cd: too many arguments
- 1つ目は
\が消えてC:Userstaromemo.txtという名前として扱われた。/に直すか、全体を引用符で囲む。 - 2つ目は空白で2つの引数に分かれた。
cd "My Documents"かcd My\ Documentsと書く。
Windows ならではの変換(公式ドキュメントより)
- 自動のパス変換:MSYS2 のドキュメントは、Windows 用のプログラムに渡す引数のうち「Unix のパスに見えるものはすべて Windows の形に自動で変換される」と説明しています。Git for Windows のリリースノートの例では、
/usr/bin/bash.exeがC:\Program Files\Git\usr\bin\bash.exeに変わります。変換させたくないときはMSYS_NO_PATHCONV=1を前に付けるか、先頭のスラッシュを2つ(//usr/bin)にします。 - 変換の道具:
cygpath -w /c/Usersで Windows の形、cygpath -u 'C:\foo'で/c/fooに変えられます(MSYS2 のドキュメント)。 - 260文字の壁:Windows は既定でパスの長さが260文字までで、Git for Windows も既定では長いパスを扱いません。
git config core.longpaths trueで扱えるようになります(FAQ)。
Git BashでGitを使う流れ(init・add・commit)
この節では、Git Bash で新しいリポジトリを作り、最初のコミットをするまでの実際の出力が分かります。
Git Bash で打つ git コマンドは、Mac・Linux とまったく同じです。 作業用のフォルダーで実行した結果です。
$ git init -b main
Initialized empty Git repository in /srv/s4/r17/t24/work/hello/.git/
$ echo "# hello" > README.md
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
$ git add README.md
$ git commit -m "最初のコミット"
[main (root-commit) c394813] 最初のコミット
1 file changed, 1 insertion(+)
create mode 100644 README.md
$ git log --oneline
c394813 最初のコミット
- 1git init(または git clone)リポジトリを作る・コピーする
- 2ファイルを編集して git status何が変わったかを見る
- 3git addコミットに含めるファイルを選ぶ
- 4git commit -m変更を記録する
- 5git pushGitHub などに送る(SSH 鍵か Credential Manager で認証)
コマンドの全体像は、関連記事「Gitコマンド一覧|やりたいこと別の早見表と実行結果・エラー対処」で扱っています。
改行コード(CRLF・LF)とcore.autocrlf
この節では、Windows で作ったファイルを bash で動かすと失敗する理由と、インストール画面で選んだ改行の設定が何をしているのかが、実行結果で分かります。
Windows の改行は CRLF(\r\n)、Linux と Mac は LF(\n)です。 CRLF のままのシェルスクリプトを bash で動かすと、行末の \r がコマンドの一部と見なされます。
$ file crlf2.sh
crlf2.sh: ASCII text, with CRLF line terminators
$ bash crlf2.sh
crlf2.sh: line 2: cd: $'src\r': No such file or directory
(3行目の echo の行は「!ello world」のように崩れて表示)
crlf2.sh: line 4: $'\r': command not found
crlf2.sh: line 5: $'ls\r': command not found
$ ./env.sh
/usr/bin/env: 'bash\r': No such file or directory
$ ./crlf.sh
/bin/bash: line 1: ./crlf.sh: cannot execute: required file not found
$'\r' や 'bash\r' が見えたら、改行コードが原因です。sed -i 's/\r$//' ファイル名 で LF に直すと動きました。VS Code なら右下の「CRLF」を押して「LF」に変えて保存します。
core.autocrlf の3つの値を試した結果
LF のファイル(lf.txt)と CRLF のファイル(crlf.txt)を、core.autocrlf=true でコミットし、3つの設定で clone しました。git ls-files --eol の i/ はリポジトリの中、w/ は手元のファイルの改行です。
$ git config core.autocrlf true
$ git add .
warning: in the working copy of 'lf.txt', LF will be replaced by CRLF the next time Git touches it
--- clone with core.autocrlf=true
i/lf w/crlf attr/ crlf.txt
i/lf w/crlf attr/ lf.txt
--- clone with core.autocrlf=input
i/lf w/lf attr/ crlf.txt
i/lf w/lf attr/ lf.txt
--- clone with core.autocrlf=false
i/lf w/lf attr/ crlf.txt
i/lf w/lf attr/ lf.txt
| インストール画面の選択肢 | 設定 | 手元(checkout) | リポジトリ(commit) |
|---|---|---|---|
| Checkout Windows-style, commit Unix-style(既定) | core.autocrlf=true |
CRLF になった | LF になった |
| Checkout as-is, commit Unix-style | core.autocrlf=input |
そのまま(LF) | LF になった(CRLF を足すと警告) |
| Checkout as-is, commit as-is | core.autocrlf=false |
そのまま | CRLF のまま入った(i/crlf) |
シェルスクリプトだけは常に LF にしたいなら、.gitattributes に書くのが確実です。 core.autocrlf=true で clone しても、*.sh text eol=lf を書いたファイルは LF のままでした。
$ cat .gitattributes
*.sh text eol=lf
*.bat text eol=crlf
$ git ls-files --eol # core.autocrlf=true で clone したあと
i/lf w/crlf attr/text eol=crlf run.bat
i/lf w/lf attr/text eol=lf run.sh
設定の細かい違いは、関連記事「Git改行コード設定|autocrlfと.gitattributesの違い」で扱っています。
Git Bashの文字化けの原因と直し方
この節では、Git Bash で日本語が化ける3つの場面と、それぞれの直し方が分かります。
Git Bash(MSYS2)は UTF-8 で動き、Windows の昔からのプログラムは Shift_JIS 系(CP932)で出力することがあり、このずれが文字化けの主な原因です。 公式の FAQ も「MSYS2 and Cygwin use UTF-8 while Windows will fall back to the legacy DOS codepages」と書いています。
1. git status で日本語のファイル名が数字になる
$ git status --short
?? "\350\255\260\344\272\213\351\214\262.txt"
$ git -c core.quotepath=false status --short
?? 議事録.txt
文字化けではなく、git が日本語を8進数で表示している状態です。git config --global core.quotepath false で直ります。
2. Shift_JIS のファイルを cat すると化ける
$ cat sjis.txt
����ɂ���
$ file sjis.txt
sjis.txt: Non-ISO extended-ASCII text
$ iconv -f CP932 -t UTF-8 sjis.txt
こんにちは
Shift_JIS で保存されたファイルは iconv -f CP932 -t UTF-8 で変換して読みます。file が UTF-8 と言わないときは、文字コードを疑います。
3. Windows のコマンド(ipconfig など)の出力が化ける
FAQ によると、mintty は Windows 用のプログラムから「コンソール」に見えないため、ASCII 以外の出力が崩れることがあります。窓の表示の文字コードは、右クリック→「Options...」→「Text」の「Locale」「Character set」で変えられます(mintty のマニュアル)。変更は、すでに動いているプログラムには効きません。
Git BashでSSH鍵を作る(ssh-keygen)
この節では、GitHub などに SSH でつなぐための鍵を Git Bash で作る手順と、実際の出力が分かります。
Git Bash には OpenSSH が入っているので、ssh-keygen がそのまま使えます。 GitHub Docs の手順どおりに、作業用のフォルダーで実行しました(Windows の Git Bash では、保存先の既定が /c/Users/YOU/.ssh/id_ed25519 になります)。
$ ssh-keygen -t ed25519 -C "taro@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519): /srv/s4/r17/t24/work/ssh/id_test
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /srv/s4/r17/t24/work/ssh/id_test
Your public key has been saved in /srv/s4/r17/t24/work/ssh/id_test.pub
The key fingerprint is:
SHA256:CQCFZzFmk3IDjxgv4CVNOfrUP+MlEVLOdbT/TH7XOx4 taro@example.com
パスフレーズは入力しても画面に出ません。続けて ssh-agent に鍵を覚えさせます(手元では -a でソケットを作業フォルダーに置いて起動し、終わったあと PID を指定して止めました)。
$ eval "$(ssh-agent -s)"
Agent pid 3831
$ ssh-add ./id_ed25519
Identity added: ./id_ed25519 (taro@example.com)
$ ssh-add -l
256 SHA256:GqV0BrIJaKstEkCd92RJtr1O7IMR/fwCuNgFMAImPss taro@example.com (ED25519)
1.pub だけを渡す
GitHub の Settings → SSH and GPG keys に貼るのは公開鍵(id_ed25519.pub)。拡張子の無い秘密鍵は誰にも渡さない。
2秘密鍵の権限
Linux では権限 644 の秘密鍵を ssh-add が拒否した(下の原文)。WSL などと鍵を共有するときに出やすい。
3Git Bash の外で使うとき
FAQ は、コマンドプロンプトなどでは Windows 付属の別の OpenSSH が先に使われることがあり、PATH と start-ssh-agent.cmd の設定が要ると説明している。
$ ssh-add ./id_ed25519 # 権限 644 のとき
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for './id_ed25519' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
GitHub への登録と接続の確かめ方、Permission denied (publickey) の切り分けは、関連記事「SSH鍵の作成とGitHub接続|Permission deniedの対処法」で扱っています。
VS CodeのターミナルをGit Bashにする
この節では、VS Code のターミナルを開いたときに Git Bash が出るようにする設定が分かります。
VS Code は Git Bash を自動で見つけ、「Git Bash」という名前のプロファイルを用意します。 公式ドキュメントの手順です。
- 1コマンドパレットを開くCtrl+Shift+P
- 2「Terminal: Select Default Profile」を実行ターミナルの「+」の横の▼からも選べる
- 3「Git Bash」を選ぶ新しく開いたターミナルから Git Bash になる
settings.json に直接書くときは、次の1行です。
{
"terminal.integrated.defaultProfile.windows": "Git Bash"
}
- VS Code の公式ドキュメントは、VS Code の中の bash では履歴がセッションをまたいで残らないことがあり、
~/.bashrcにexport PROMPT_COMMAND='history -a'を足すと回避できる、と書いています。 - インストール画面の PATH を「Use Git from Git Bash only」にした場合、インストーラーの説明どおり Git Bash の外からは git のコマンドを使えません。VS Code のソース管理の機能でも git を使うなら、既定の2つ目を選びます。
コマンドプロンプト・PowerShell・WSLとの違い
この節では、Windows で使える4つのターミナルの違いと、どれを使うかの判断の基準が分かります。
| Git Bash | コマンドプロンプト | PowerShell | WSL | |
|---|---|---|---|---|
| 中身 | bash(MSYS2) | cmd.exe | PowerShell | 本物の Linux |
| コマンド | ls・grep など Linux 風 | dir・copy など | Get-ChildItem など | Linux と同じ |
| 入れ方 | Git for Windows に同梱 | Windows に標準 | Windows に標準 | 管理者の PowerShell で wsl --install |
| Linux のソフト | 動かない | 動かない | 動かない | apt で入れて動く |
| 向いている作業 | Git・簡単なスクリプト | 以前からのバッチ | Windows の管理・自動化 | Linux 向けの開発全般 |
Microsoft のドキュメントは、WSL を「別の仮想マシンやデュアル ブートを必要とせずに、Windows マシンで Linux 環境を実行できます」と説明し、WSL 2 は軽量の仮想マシンの中で Linux カーネルを動かします。Git Bash は Linux を動かしているのではなく、Linux 風のコマンドを Windows のプログラムとして動かしている点が違います。
判断表:どれを使うか
| やりたいこと | おすすめ | 理由 |
|---|---|---|
| Git の操作を覚えたい・Git だけ使う | Git Bash | 入れるだけで使え、Mac・Linux と同じコマンドで覚えられる |
| Linux サーバー向けのアプリを作る | WSL | 本番と同じ Linux で動かせる |
| Windows の設定・ファイル管理を自動化 | PowerShell | Windows の機能を直接扱える |
| Windows のフォルダーのまま .sh を動かす | Git Bash | /c/ からそのまま触れる |
| python・node を対話で多用する | PowerShell か WSL | Git Bash(mintty)では winpty が要ることがある |
WSL の始め方は関連記事「WSL2環境構築|Ubuntu開発環境をコマンドだけで整える手順」で、PowerShell との対応は関連記事「PowerShellコマンド一覧|用途別50選とbash対応表・実行例付き」で扱っています。
Git Bashのよくあるエラーとつまずき(原文つき)
この節では、Git Bash で出やすいエラーの原文から、原因と直し方を引けます。
| 出た文言 | 原因 | 直し方 |
|---|---|---|
bash: sl: command not found |
コマンド名の打ち間違い・入っていない | 綴りを見直す。type 名前 で場所を確かめる |
bash: cd: too many arguments |
空白を含むフォルダー名 | 引用符で囲む |
No such file or directory |
場所の違い・\ を使ったパス |
pwd と ls で確かめ、/c/... で書く |
rm: cannot remove 'src': Is a directory |
フォルダーを rm で消そうとした | rm -r(中身ごと消える) |
cp: -r not specified; omitting directory 'src' |
フォルダーを cp でコピーしようとした | cp -r |
$'\r': command not found |
CRLF のシェルスクリプト | LF に直す・.gitattributes |
Author identity unknown |
user.name・user.email が無い | git config --global で登録 |
UNPROTECTED PRIVATE KEY FILE! |
秘密鍵の権限が広すぎる | chmod 600 |
- 1python・node が固まるFAQ の回避策は
winpty pythonのように winpty を付けて起動すること。インストール画面で「Use Windows' default console window」を選ぶ方法もある - 2引数のパスが勝手に C:\ に変わる
MSYS_NO_PATHCONV=1 コマンドで変換を止める(リリースノート) - 3Excel で変えたファイルが git に出ないExcel は mtime(更新日時)ではなく ctime(変更時刻)を更新するため。
git statusを実行すると気づく(FAQ) - 4PowerShell で git のヒントどおり打つと失敗するgit のヒントは POSIX のシェル向け、とリリースノートの既知の問題にある。ヒントは Git Bash で打つ
よくある質問
Q. Git Bashとは何ですか? A. Windows で Git と bash を使うためのターミナルです。Git for Windows をインストールすると一緒に入り、Linux と同じ形のコマンドで Git やファイルの操作ができます。
Q. Git Bash だけをインストールできますか? A. できません。Git for Windows のインストーラーに含まれています。インストールせずに使いたいときは、展開して使うポータブル版(PortableGit-2.56.0.4-64-bit.7z.exe など)も配布されています。
Q. インストール画面はすべて既定のままでよいですか? A. 多くの場合は既定で問題なく使えます。変えることが多いのは、エディター(Vim → VS Code など)と、初期ブランチ名(main にそろえる)の2つです。
Q. Git Bash は無料ですか? A. 無料です。Git は GNU GPL v2 で、一緒に配布される bash などもそれぞれのライセンスで配布されています(リリースノート)。
Q. Mac や Linux にも Git Bash はありますか? A. Mac・Linux にはもともと bash などのシェルとターミナルがあるため、Git を入れるだけで同じことができます。Git Bash は Windows のためのものです。
Q. Git Bash のホームフォルダーはどこですか?
A. ~ が Windows のユーザーフォルダー(/c/Users/名前)にあたります。GitHub Docs の SSH 鍵の既定の保存先も /c/Users/YOU/.ssh/ です。
Q. Git Bash で貼り付けができません。 A. mintty では Ctrl+V は既定で貼り付けになりません。Shift+Insert か、右クリックのメニューの Paste を使います。Options の Keys で Ctrl+Shift+V を有効にすることもできます。
Q. Git Bash の版を上げるには?
A. Git Bash で git update-git-for-windows を実行するか、最新のインストーラーを上から実行します。インストーラーは前の版を消してから入れ、前回の選択を引き継ぎます。
Q. WSL があれば Git Bash は不要ですか? A. WSL の中でも git は使えます。Windows のフォルダー(/c/...)で作業するなら Git Bash、Linux の中のフォルダーで作業するなら WSL の git、と作業する場所で分けると、改行コードの設定などで迷いにくくなります。
Q. .sh ファイルをダブルクリックで動かせますか? A. インストール画面の「Associate .sh files to be run with Bash」(既定でチェックあり)が有効なら、ダブルクリックで bash が実行します。改行コードが CRLF だと失敗するので、LF で保存します。
まとめ
- Git Bash は Git for Windows に入っている bash のターミナルで、Linux と同じコマンドで Git とファイルを扱える。2026年10月29日時点の最新は 2.56.0(4)。
- インストール画面は既定のままで進められる。PATH は既定の「Git from the command line and also from 3rd-party software」、エディターと初期ブランチ名は好みで変える。
- パスは
/c/Users/名前の形で書く。\と空白はそのまま打つと崩れる。 - CRLF のシェルスクリプトは
$'\r': command not foundで失敗した。.gitattributesの*.sh text eol=lfならautocrlf=trueでも LF のままだった。 - 日本語のファイル名は
core.quotepath false、Shift_JIS の中身はiconvで直る。SSH 鍵はssh-keygen -t ed25519で作り、.pub だけを登録する。
参考・出典
確認日はいずれも 2026年10月29日です。
- Git for Windows 公式サイト:https://gitforwindows.org/
- Git for Windows「Frequently Asked Questions」:https://gitforwindows.org/faq.html
- Git for Windows「Technical overview」:https://gitforwindows.org/technical-overview.html
- Git for Windows のリリース(v2.56.0.windows.4):https://github.com/git-for-windows/git/releases/latest
- Git for Windows のリリースノート(Known issues を含む):https://github.com/git-for-windows/build-extra/blob/main/ReleaseNotes.md
- インストーラーの定義ファイル install.iss:https://github.com/git-for-windows/build-extra/blob/main/installer/install.iss
- Git Bash のプロンプトの定義 git-prompt.sh:https://github.com/git-for-windows/build-extra/blob/main/git-extra/git-prompt.sh
- 既定のエイリアス aliases.sh・bash_profile.sh:https://github.com/git-for-windows/build-extra/tree/main/git-extra
- mintty「mintty manual」:https://mintty.github.io/mintty.1.html
- MSYS2「Filesystem Paths」:https://www.msys2.org/docs/filesystem-paths/
- Visual Studio Code「Terminal Profiles」:https://code.visualstudio.com/docs/terminal/profiles
- GitHub Docs「新しい SSH キーを生成して ssh-agent に追加する」:https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
- Microsoft Learn「WSL とは」:https://learn.microsoft.com/ja-jp/windows/wsl/about
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Git Bashとは?使い方・インストールの全選択肢とエラー対処」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。