こんにちは、プログラミング初心者のマドレーヌです。
かめ@米国データサイエンティストさんのGIT講座をWINDOWSで受講しています。
上記講座はMAC向けの講座であり、WINDOWSで進める場合躓く箇所が多々あります。
自分の解決方法を備忘録的に書き連ね共有していこうと思います。
今回は「ターミナルのプロンプトにGit情報を常に表示させる【超便利】」
https://datawokagaku.com/terminal_prompt_git/
をWSLに適用させる方法を説明します。
ステップ1:シェルファイルを配置
シェルファイル(https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh) をダウンロードします。
シェルファイルの配置位置ですがWSLの場合、ホームディレクトリに置く必要があります。
以下のコマンドをWSLに入力します。
cp /mnt/c/Users/ユーザー名/Downloads/git-prompt.sh ~/.git-prompt.sh
ステップ2,3は必要ないので飛ばします。
ステップ3.5:Git補完機能用ファイルのダウンロード
次に進む前にGit補完機能用ファイルのダウンロードをします。
Git補完機能とはGitコマンドやオプションを入力するときに、タブキーを押すことで自動的に補完(予測入力)してくれる機能です。
例)git sta -> git status
以下コマンドでファイルをダウンロードしましょう。
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
ステップ4:いよいよ~/.bash_profileを変更する。
さてWSLの場合は~/.bash_profileではなく~/.bashrcを変更します。
code ~/.bashrc
VSCodeの人は「code」その他の人は自分のエディタにしてください。
続いて.bashrcの最後尾に以下のコードを入力します。
Gitユーザー名を表示するための関数
function join_by { local IFS="$1"; shift; echo "$*"; }
function _ps1_git_username {
local git_users_array=$(git config --global --get-all user.name)
git_users=$(join_by , $git_users_array)
test "$git_users" == 'GITのユーザー名' && echo "絵文字" && return
test "$git_users" && echo "$git_users" && return
echo "No Git User"
}
# Gitプロンプトスクリプトのパス
git_prompt_script=~/.git-prompt.sh
if [ -f $git_prompt_script ]; then
# git-promptスクリプトを読み込む
source $git_prompt_script
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUNTRACKEDFILES=1
export GIT_PS1_SHOWUPSTREAM="auto"
# プロンプト設定
export PS1='\[\e[0;32m\]\u@\h\[\e[m\]:\[\e[0;34m\]\w$(_ps1_git_username)$(__git_ps1 " (%s)")\[\e[m\] \$ '
else
# Gitプロンプトがない場合のプロンプト設定
export PS1="\[\e[0;31m\]\W\[\e[m\] :$ "
fi
# カラースキームの設定(lsコマンドの表示など)
export LSCOLORS=ExGxFxdxCxDxDxaccxaeex
# Git補完スクリプトのパス
git_completion_script=~/.git-completion.bash
if [ -f $git_completion_script ]; then
source $git_completion_script
fi
5:使い方
名前を反映させるため以下のコマンドを入力します。
$ git config --global user.name {USERNAME}
$ git config --global user.email {EMAIL}
{USERNAME}と{EMAIL}の部分はGithubのアカウントのusernameとemailを入れます.
WSLでの対応は以上になります。
少しでも参考になれば幸いです。