Şu anda üzerinde çalıştığım (eklenti) git dalını eklemeden denedim. ( Etkin dizini / dosyayı sağlam gösteren geçerli yolumu korurken) Evimde bir .bashrc dosyası var, aynı zamanda birçok kişinin .profile dosyasından bahsettiğini gördüm ..
Şu anda üzerinde çalıştığım (eklenti) git dalını eklemeden denedim. ( Etkin dizini / dosyayı sağlam gösteren geçerli yolumu korurken) Evimde bir .bashrc dosyası var, aynı zamanda birçok kişinin .profile dosyasından bahsettiğini gördüm ..
Yanıtlar:
__git_ps1
Git adlandırılan bir kabuk sağlayan git-prompt.sh
bir işlev içerir, __git_ps1
bu
bash PS1 istemine eklemek için metin yazdırır (dal adını içerir)
En temel kullanımı:
$ __git_ps1
(master)
Ayrıca isteğe bağlı bir biçim dizesi alır:
$ __git_ps1 'git:[%s]'
git:[master]
İlk olarak, dosyayı bir yere kopyalayın (örn. ~/.git-prompt.sh
).
1.Seçenek: Dosya sisteminizde mevcut bir kopyayı kullanın. Örnek (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
Seçenek 2: Komut dosyasını GitHub'dan çekin .
Ardından, şu satırı ekleyin .bashrc/.zshrc
:
source ~/.git-prompt.sh
Son olarak, komut değiştirme yerine PS1
çağrı __git_ps1
olarak değiştirin:
Bash:
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
zsh:
setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
Ancak, yalnızca git 1.9.3 (Mayıs 2014) veya sonraki sürümlerin , o şube adını (!) Güvenli bir şekilde görüntülemenize izin verdiğini unutmayın.
Bkz. Taahhüt 8976500 , Richard Hansen ( richardhansen
) :
Hem bash hem de zsh, PS1'in değerini parametre genişletme , komut değiştirme ve aritmetik genişletmeye tabi tutar.
PS1
İki veya üç bağımsız değişken modunda çalışırken ham, çıkışsız dal adını eklemek yerine, dal adınıPS1
tutan bir değişkene başvuruda bulunun.Kabuklar yinelemeli olarak genişlemediğinden, bu, örneğin özel hazırlanmış dal adlarıyla rastgele kod yürütülmesini önler
'$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)'.
Hangi dal aklı böyle bir dalı adlandırır? ;) ( Xkcd'deki gibi bir annenin yanında )
still_dreaming_1 raporlar yorumlarda :
xterm
(Benim.bashrc
) ile bir renk istemi istiyorsanız bu harika çalışıyor gibi görünüyor :
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)\$ '
Şube dahil her şey farklı bir renktir.
Linux Mint 17.3 Tarçın 64 bit:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\033[00m\]$(__git_ps1) \$ '
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)\$'
her şey dal da dahil olmak üzere farklı bir renktir.
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\033[00m\]$(__git_ps1) \$ '
Aşağıdaki adımları izleyin: (Linux)
Dosyayı düzenleyin ~/.bashrc
, sonuna aşağıdaki satırları girin (Mac'te dosya olur ~/.bash_profile
)
# Git branch in prompt.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
Şimdi yeni terminal penceresini başlatın ve git-repo'ya girmeyi deneyin. Geçerli şube, istemle birlikte gösterilir.
PS1="\u@\h \W\[\033[32m\]$(parse_git_branch)\[\033[00m\] $ "
. Ben PS1 önünde 'ihracat' kullanmama rağmen.
1- Bash tamamlamanız yoksa ...:sudo apt-get install bash-completion
2- .bashrc dosyanızı düzenleyin ve kontrol edin (veya ekleyin):
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
3- ... bilgi isteminizden önce: export PS1='$(__git_ps1) \w\$ '
( __git_ps1 git şubenizi gösterecektir)
4- yap source .bashrc
DÜZENLE :
İlave değerler: Tekerleği Yeniden Keşfetmeyin
Git durumunu görüntülemek için bilgi istemini şu şekilde yapılandırdım:
Git-komut dosyası al:
curl -o ~/.git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
Ve .bashrc dosyanıza aşağıdaki kodu ekleyerek isteminizi özelleştirin:
# Load Git functions
source ~/.git-prompt.sh
# Syntactic sugar for ANSI escape sequences
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m' # Black - Background
bakred='\e[41m' # Red
badgrn='\e[42m' # Green
bakylw='\e[43m' # Yellow
bakblu='\e[44m' # Blue
bakpur='\e[45m' # Purple
bakcyn='\e[46m' # Cyan
bakwht='\e[47m' # White
txtrst='\e[0m' # Text Reset
# Prompt variables
PROMPT_BEFORE="$txtcyn\u@\h $txtwht\w$txtrst"
PROMPT_AFTER="\\n\\\$ "
# Prompt command
PROMPT_COMMAND='__git_ps1 "$PROMPT_BEFORE" "$PROMPT_AFTER"'
# Git prompt features (read ~/.git-prompt.sh for reference)
export GIT_PS1_SHOWDIRTYSTATE="true"
export GIT_PS1_SHOWSTASHSTATE="true"
export GIT_PS1_SHOWUNTRACKEDFILES="true"
export GIT_PS1_SHOWUPSTREAM="auto"
export GIT_PS1_SHOWCOLORHINTS="true"
Daha fazla bilgi edinmek isterseniz, tüm nokta dosyalarını buradan alabilirsiniz: https://github.com/jamming/dotfiles
PROMPT_BEFORE
Ortam değişkenini değiştirebilir ve $txtwht\w
bunu ezbere bilmiyorum kaldırabilirim , ama sanırım hile yapıyor
$
saklanmış değişikliklerin olduğu =
anlamına gelir ve en son taahhüdün uzaktan takip edilen şubeye itildiği anlamına gelir
Mac için, bu gerçekten iyi çalışıyor: http://martinfitzpatrick.name/article/add-git-branch-name-to-terminal-prompt-mac/ :
# Git branch in prompt.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
İlk önce, Bash Profilinizi ana dizininizde açın. Varsayılan düzenleyicinizi kullanarak bash_profile dosyanızı açmanın ve düzenlemenin en kolay yolu .
Örneğin, bu kodu kullanarak VS Kodu kullanarak açın: kod .bash_profile.
Ardından aşağıdaki kodları Bash'inize yapıştırın.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
İşlev
parse_git_branch ()
şube adını getirecek ve daha sonra PS1 aracılığıyla terminalinizde gösterebilirsiniz.
Buraya,
\ u = Kullanıcı adı
@ = Statik Metin
\ h = Bilgisayar Adı
\ w = Geçerli Dizin
$ = Statik Metin
Daha fazla özelleştirme için bu değişkenleri değiştirebilir veya kaldırabilirsiniz.
Git'i terminalde ilk kez veya konfigürasyondan hemen sonra kullanırsanız, bazen şube adını göremezsiniz.
Bu sorunu yaşarsanız endişelenmeyin. Bu durumda, sadece bir örnek havuz hazırlayın ve bazı değişikliklerden sonra bunu kaydedin. Commit komutu bir kez çalıştırıldığında, terminal oradan git dalını bulur.
vim ~/.bash
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $"
En son değişiklikleri yansıtmak için aşağıdaki komutu çalıştırın
source ~/.bashrc
Çıktı:-
chandrakant@NDL41104 ~/Chandrakant/CodeBase/LaravelApp (development) $
Eğer kullanırsanız balıklar kabuk onun oldukça yalındır. balık çok sayıda güzellik ile gelen interaktif bir kabuktur. Bunu kullanarak kurabilirsiniz apt-get
.
sudo apt-get install fish
daha sonra komut istemi ayarını
> fish_config
Web config started at 'http://localhost:8001/'. Hit enter to stop.
Created new window in existing browser session.
şimdi http://localhost:8001/
bilgi istemi sekmesini açın ve klasik + git seçeneğini belirleyin
Şimdi istemi kullan düğmesine tıklayın ve hazırsınız.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]$(parse_git_branch)\n\$ '
tput
aklı başında biri gibi kullanın .
Ubuntu terminalinde GIT repo şubenizin adını göstermek için aşağıdaki adımları izleyin:
Adım 1: Terminali açın ve aşağıdaki komutu kullanarak .bashrc dosyasını düzenleyin.
vi .bashrc
Adım 2: .bashrc dosyasının sonuna aşağıdaki satırı ekleyin:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' }
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
Aşama 3: kaynak .bashrc kök (home) dizininde yaparak:
/ RootFolder: ~ $ source .bashrc
Adım 4: Terminali yeniden başlatın ve açın ve cmd'yi kontrol edin. GIt repo dizin yolunuza gidin ve işiniz bitti. :)
root:~/project# -> root:~/project(dev)#
~ / .bashrc öğenizin sonuna aşağıdaki kodu ekleyin
force_color_prompt=yes
color_prompt=yes
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt
Bir bin klasörüne gider python küçük bir komut dosyası denedim .... 'gitprompt' dosya
#!/usr/bin/env python
import subprocess, os
s = os.path.join(os.getcwd(), '.git')
def cut(cmd):
ret=''
half=0
record = False
for c in cmd:
if c == "\n":
if not (record):
pass
else:
break
if (record) and c!="\n":
ret = ret + c
if c=='*':
half=0.5
if c==' ':
if half == 0.5:
half = 1
if half == 1:
record = True
return ret
if (os.path.isdir(s)):
out = subprocess.check_output("git branch",shell=True)
print cut(out)
else:
print "-"
Yürütülebilir hale getirin
Sonra bash istemini buna göre ayarlayın:
\u:\w--[$(gitprompt)] \$