概要

  • 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 のホームディレクトリの変更 | mLAB

起動時のフォルダを変更する方法 | buralog

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

参考:

Git Bash に環境変数を追加する – Qiita

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'

ドキュメント:

wmic | Microsoft Learn [公式]

参考:

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
  • /binC:/Program Files/Git/usr/bin
  • /tmpC:/Users/[User Name]/AppData/Local/Temp
  • /cC:

ドライブがマウントされているディレクトリを確認する。

$ 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

ユーザー

参考:

owner of file – Super User

WSL との違い

ドキュメント:

WSL で Git の使用を開始する | Microsoft Learn [公式]

参考:

Git Bash and WSL have a different directory structure – Super User

Docker

参考:

Mount volume doesn’t work on Windows 10 using git-bash · Issue #673 · docker-archive/toolbox – GitHub

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

ドキュメント:

Git Wrapper · git-for-windows/git Wiki – GitHub

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA