0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL(Powershell)プロンプトにGit情報を常に表示させる方法

Posted at

こんにちは、プログラミング初心者のマドレーヌです。
かめ@米国データサイエンティストさんの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での対応は以上になります。
少しでも参考になれば幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?