[解決済み] Bashのコマンドプロンプトでgitブランチを追加する
質問
bashプロンプトで現在作業している(チェックアウトした)gitブランチを追加してみましたが、うまくいきません... ( アクティブディレクトリ/ファイルを表示する現在のパスはそのままに そのまま) 私は自宅に.bashrcファイルを持っていますが、多くの人が.profileファイルについて言及しているのを見ました...。
解決方法は?
git 1.9.3またはそれ以降: を使用します。
__git_ps1
Gitは
git-prompt.sh
この関数には
__git_ps1
その
bash の PS1 プロンプトに追加するテキストを表示します (ブランチ名を含む)
その最も基本的な使い方は
$ __git_ps1
(master)
また、オプションで書式文字列を受け取ります。
$ __git_ps1 'git:[%s]'
git:[master]
入手方法
まず、ファイルをどこかにコピーします(例.
~/.git-prompt.sh
).
オプション1:ファイルシステム上の既存のコピーを使用する。 例(Mac OS X 10.15)。
$ find / -name 'git-prompt.sh' -type f -print -quit 2>/dev/null
/Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh
オプション2:スクリプトを引っ張る GitHubから .
次に、次の行を
.bashrc/.zshrc
:
source ~/.git-prompt.sh
最後に
PS1
を呼び出します。
__git_ps1
をコマンドの代用として使用します。
Bashです。
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
Zsh
setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
git < 1.9.3
ただし、git 1.9.3(2014年5月)だけなので注意が必要です。 またはそれ以降 を使用することができます。 安全に そのブランチ名を表示する(!)
参照
コミット8976500
によって
リチャード・ハンセン (
richardhansen
)
:
bashもzshも、PS1の値を パラメータ展開 , コマンド置換 と算術展開があります。
エスケープされていない生のブランチ名を
PS1
で実行する場合、2つまたは 3引数モードではPS1
を使用して、ブランチ名を保持する変数を参照します。シェルは再帰的に展開しないので、以下のような特別に細工されたブランチ名による任意のコードの実行を回避することができます。
'$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)'.
どんな悪知恵が働いたのか、そんなブランチ名をつけるとは......;) ( xkcdのようにママの横で )
その他の例
still_dreaming_1 レポート コメント欄 :
でカラープロンプトを表示させたい場合、これはとても有効なようです。
xterm
(私の.bashrc
):
PS1='\[\e]0;\u@\h: \w\a\]\n${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1)\$ '
枝も含めて、すべてが違う色になっている。
Linux Mint 17.3 Cinnamon 64bitで。
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\033[00m\]$(__git_ps1) \$ '
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】既存のGitブランチをリモートブランチに追従させる?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み] [email protected] へのいくつかの参考文献のプッシュに失敗しました。
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
git revert + git rebase 一度に複数のコミット_本然233的博客程式员息信网_git revert Multiple
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?
-
[解決済み] エラーです。リベースを使用してプルできません。あなたはステージングされていない変更を持っています