概要
- Git Bash は、Git for Windows をインストールすることで利用可能になる Bash を使用するターミナル環境である。Windows 上で Linux によく似た環境を提供する。
- Git Bash には、Git 関連のコマンド以外にも標準的な Linux コマンドが多く含まれており、一部の特殊なコマンドを除いて Bash 用スクリプトなども実行可能となる。
参考:
Git Bash とは? Windows の Linux ツールを解説! | アンドエンジニア
導入
参考:
Windows で Git を始めたらまず確認! Git Bash の設定 & ショートカット | 株式会社グランフェアズ
使い方
参考:
Git Bash の使い方!設定方法も初心者向けにくわしく解説! | Appli World
起動オプション
参考:
Git for Windows でシェルスクリプトが動かなくなった | Seaoak’s READ
How can I find out the command line options for git-bash.exe? – Super User
ディレクトリを指定して Git Bash を開く
--cd-to-home
を除いたショートカットを作成する
参考:
How do I change the default location for Git Bash on Windows? – Stack Overflow
パスを追加する
参考:
Windows 環境の Git Bash に環境変数を追加する – Qiita
Extend $PATH variable in Git Bash – Stack Overflow
ホームディレクトリ
ホームディレクトリを確認するために、環境変数 HOME
の値を表示する。
$ echo $HOME
ホームディレクトリはデフォルトでは、ユーザーディレクトリになっている。
/c/Users/[User Name]
参考:
Git Bash の作業フォルダの変更方法 | IT Learning
Git Bash のホームディレクトリを変更する | 端くれプログラマの備忘録
Git Bash のホームディレクトリを変更する | yamango の日記
Git Bash を立ち上げたときのデフォルトディレクトリについて – teratail
How do I change my Git home folder? – Stack Overflow
Change the location of the ~ directory in Git Bash – Stack Overflow
.bashrc
空の .bashrc
ファイルを作成し、Bash を再起動する。
$ touch ~/.bashrc $ exec $SHELL -l
参考:
Git Bash で alias を使うために .bashrc を作成 – Qiita
.bashrc を新規作成すると警告とともに .bash_profile が作成されたので調べました | oki2a24
Git Bash を立ち上げた時に .bashrc が読み込まれないっぽい | くんすとの備忘録
.bashrc or equivalent configuration files for Git Bash – Stack Overflow
doesn’t execute my .bashrc file – Stack Overflow
generate default .bashrc – Stack Overflow
パスを通す
.bashrc
ファイルでパスを追加する。
export PATH=$PATH:/path/to/bin
参考:
Extend $PATH variable in Git Bash – Stack Overflow
ショートカット
Git Bash を特定のディレクトリで開くショートカットを作成する。
"C:\Program Files\Git\git-bash.exe" "--cd=C:\Path\To\Working Directory"
シンボリックリンクの扱い
シンボリックリンクを含むリポジトリをクローンする前にシンボリックリンクを使用可能にする。
- Git for Windows のインストール時に「Enable symbolic links」を有効にする。
- Windows 10 の設定で「開発者向け > 開発者向け機能を使う」において「開発者モード」を選択する。
インストール後に設定を変更する場合は、次のコマンドを実行する。
$ git config --global core.symlinks=true
ln -s コマンド
ln -s
コマンドはデフォルトではシンボリックリンクではなく、コピーを作成するようになっている。ln -s
コマンドでシンボリックリンクを作成するには、MSYS
環境変数を設定する。~/.bash
に次の記述を追加する。
export MSYS=winsymlinks:nativestrict
権限
シンボリックリンクを作成するには権限が必要となる。次のいずれかにより、シンボリックリンクを作成する権限がある状態でコマンドを実行する。
- 管理者権限で Git Bash を開く。
- Windows のエディションが Pro の場合は、グループポリシーエディタでユーザーに権限を与える。
- Windows のエディションが Home の場合は、「Polsedit」を用いてユーザーに権限を与える。
リンク:
Symlinks in Windows 10! | Windows Developer Blog [Official]
参考:
Git for Windows でシンボリックリンクを扱えるようにする – Qiita
Git へ移行して、シンボリックリンクにはまったお話/Users にシンボリックリンク作成権限を付与するまで | エンジニアの階段
Git Bash でシンボリックリンクをつくれるようにする | LOGICKY BLOG
Windows 10 でシンボリックリンクを利用する | rcmdnk’s blog
Symbolic Links · git-for-windows/git Wiki – GitHub
Symlink support by kblees · Pull Request #156 · git-for-windows/git – GitHub
ln -s copies instead of links · Issue #171 · git-for-windows/git – GitHub
fails to create symbolic links in Git Bash – Stack Overflow
symbolic links on Windows – GitHub Support Community
symlinks in Windows – Stack Overflow
プロンプトをカスタマイズする
参考:
Git Bash のプロンプトをカスタマイズ – Qiita
Git Bash のプロンプトから不要な箇所を消してスッキリさせる – Qiita
ターミナルをカスタマイズする
参考:
快適に Git Bash と mintty を使うために色とフォントを変える – Qiita
Windows Terminal で使う
参考:
Windows Terminal で Git Bash を表示する – Qiita
VSCode で使う
VSCode でターミナルとして Git Bash を起動した際に .bash_profile
が読み込まれるようにするには、-l
オプションを指定して起動時にログインする。
{
// ...
"terminal.integrated.shellArgs.windows": [ "-l" ],
// ...
}
Code language: JSON / JSON with Comments (json)
参考:
VSCode で Git Bash ターミナルを開いた時に .bash_profile が読み込まれない | Neo’s World
Visual Studio Code の統合シェルを MSYS2 の Bash にしたら .bash_profile が読み込まれなかった – Qiita
VSCode の Terminal で .bash_profile が読み込まれない – Qiita
.bash_profile not sourced in integrated terminal on mac · Issue #7672 · microsoft/vscode – GitHub
プロセス情報を取得する
Windows におけるプロセス ID が WINPID
に格納されているとして、wmic
コマンドを cmd.exe
経由で呼び出してプロセス情報を取得する。
$ cmd.exe /c "wmic process where (processid=$WINPID) get processid,parentprocessid,executablepath /value" | sed -e '/^\s*$/d'
ドキュメント:
参考:
taskkill で親プロセスを終了させる方法 – teratail
Finding parent process ID on Windows – Stack Overflow
How do I get the parent command in Windows command line? – Stack Overflow
ディレクトリのマウント状況を確認する
ディレクトリがどのようにマウントされているか確認するには、mount
コマンドを実行する。
$ mount
ルートディレクトリ /
は通常、Git for Windows をインストールしたディレクトリにマウントされている。それ以外にも、/bin
及び /tmp
ディレクトリがマウントされる。また、C ドライブは /c
に、D ドライブは /d
など、順にアルファベット一文字のディレクトリとしてマウントされる。
/
→C:/Program Files/Git
/bin
→C:/Program Files/Git/usr/bin
/tmp
→C:/Users/[User Name]/AppData/Local/Temp
/c
→C:
ドライブがマウントされているディレクトリを確認する。
$ mount | grep -E '^[A-Z]:\s' | cut -d ' ' -f 3
参考:
mount コマンドの使い方 | UNIX/Linux の部屋
/ directory for Git Bash – Stack Overflow
Where is the Git Bash `/` directory? – Super User
Changing the root directory (/) of Git Bash – Stack Overflow
search over all drives in Git Bash crashes – Super User
ユーザー
参考:
WSL との違い
ドキュメント:
WSL で Git の使用を開始する | Microsoft Learn [公式]
参考:
Git Bash and WSL have a different directory structure – Super User
Docker
参考:
Absolute paths change with git bash on windows · Issue #24029 · moby/moby – GitHub
ZIP ファイルを作成する
- PowerShell の
Compress-Archive
コマンドを呼び出す。
ドキュメント:
Compress-Archive – PowerShell | Microsoft Learn [公式]
参考:
Git Bash での zip コマンドの代わり – Qiita
Compress-Archive – コマンドラインで ZIP ファイルを作成する | まくろぐ
How to add man and zip to Git Bash – Stack Overflow
Tips
Visual Studio Code の統合シェルを MSYS2 の Bash にしたら .bash_profile が読み込まれなかった – Qiita
Git Wrapper
コード:
mingw-w64-git/git-wrapper.c – git-for-windows/MINGW-packages – GitHub
ドキュメント: