インストール中に「Windowsプロンプトを変更しない」を選択したMSysGit(最新)を使用してGitExtensionsを介してインストールされたGitをWindowsで使用しています。
ここで、デフォルトのプロンプトを変更できるようにしたいと思います(デフォルトでは、ブランチ名だけが表示され、最後にOrigin
(または具体的にはOrigin/master
)にプッシュしてからの時間とローカルコミットの数も表示されます。 、どちらか簡単な方)。
したがって、代わりに次のように言います:me@myPC /c/myRepo (master)
me@myPC /c/myRepo (master) 5 | 10:20
の行に沿って何かが表示されます。
つまり、最後に10時間20分前にプッシュし、それ以来5つのローカルコミットを行っています。
言及する前に、PowerShellでそれを行う方法があることは承知していますが、使用したくありません。誰もが知っていて大好きな標準のgitbashが欲しいです。
PS1
ファイルの.bashrc
変数を変更することで、それに対するいくつかの解決策を見つけましたが、(私の貧弱なUnix konwledgeを許して)それらは機能していないようです(たとえば、 this 質問への回答を受け入れました)。
だからあなたはそれを持っています。これは可能ですか?
デフォルトのgit-completionスクリプトは、あなたが求めているものの一部をサポートします。/etc/profileファイルでGIT_PS1_SHOWUPSTREAM = "verbose git"を設定すると、アップストリームブランチの前のコミット数がプロンプトに追加されます。 git固有の部分に(%s)
を含めるには、以下のようにプロンプトを設定する必要がある場合があります。
export PS1='\[\033]0;$MSYSTEM:\w\007
\033[32m\]\u@\h \[\033[33m\w$(__git_ps1 " (%s)")\033[0m\]
\$ '
時間の部分については、それは私にとって新しいことです。ただし、git-bashは、見つかったUNIXバージョンを処理する必要があります。管理者として/ etc/profileを編集するだけです(実際には%PROGRAMFILES%\Git\etc\profile
であるか、以下を含む〜/ .profileファイルを作成します。
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWUPSTREAM='verbose git'
export GIT_PS1_SHOWDIRTYSTATE GIT_PS1_SHOWUPSTREAM
これらの環境変数が設定されている場合、オリジンの前に1つのコミットがあるダーティツリーがある場合、デフォルトのmsysGitプロンプトは次のようになります。
pat@FROG /c/src/msysgit (devel * u+1)
$ git status --short --branch
## devel...Origin/devel [ahead 1]
M doc/git/html
M etc/inputrc
手順1.これら2つのファイルをホームフォルダにコピーします。%PROGRAMFILES%\ Git\etc \の下にあります。
git-completion.bash
git-Prompt.sh
ステップ2..bashrc
のようなbashプロファイルでPS1を構成します。次に例を示します。
. git-completion.bash
. git-Prompt.sh
GIT_PS1_SHOWDIRTYSTATE=true
PS1='\w\[\033[01;32m\]$(__git_ps1)\[\033[00m\]\$ '
__git_ps1
関数は、mingwbash内から/git/config/completion/git-completion.bash
で定義されます。この関数を独自の.bashrcにコピーして、必要に応じて編集できるはずです。
FWIW __git_ps1をスキップして、自分の色を使うことにしました。これが私の.bashrcからのプロンプトコードです:
DEFAULT_COLOR='\[\e[0m\]'
BLACK='\[\e[0;30m\]'
LTBLUE='\[\e[1;34m\]'
LTRED='\[\e[1;31m\]'
USER_COLOR=$LTBLUE
GIT_CHANGE_COLOR=$LTRED
GIT_NO_CHANGE_COLOR="$BLACK"
gitPrompt() {
local gitPrompt=$(__git_ps1)
local gitColor="$GIT_NO_CHANGE_COLOR"
if [ -n "$gitPrompt" ]; then
branch=$(git symbolic-ref HEAD 2>/dev/null)
if [ "$gitPrompt" != " (${branch##refs/heads/})" ]; then
gitColor="$GIT_CHANGE_COLOR"
fi
fi
echo "$USER_COLOR\u@\h:\W$gitColor$gitPrompt$DEFAULT_COLOR$ "
}
Prompt_COMMAND='PS1="$(gitPrompt)"'
Prompt_COMMANDの式は、プロンプトが出力されるたびに評価されます。
やりたいことをするためには、おそらくawkやPerlのようなものでreflogを解析し、それをブランチ名の後に追加する必要があります。私は通常、あなたが探している情報を視覚化するためにgitkに依存しています。
GitPortable for Windowsを実行している場合は、 このサイト から取得したこのトリックを実行することをお勧めします。
書く $ nano ~/.bashrc
gitportableコンソールで。編集が終わったら、write $ source ~/.bashrc
設定を再読み込みします。私のインストールでは、ファイルをC:\ apps\GitPortable\Data\homeフォルダーに保存します。
# Git-friendly Prompt showing dirty state
# http://stackoverflow.com/questions/10133173/alter-git-Prompt-on-windows
shopt -s promptvars
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUPSTREAM='verbose git'
export PS1='\[\033[1;36m\]\[\033[0m\]\[\033[1;34m\]\w\[\033[0m\]
\[\033[1;32m\]$(__git_ps1)\[\033[0m\]\$ '
# Enable color support of ls
alias ls='ls --color=auto -alhX'