सवाल मैं टर्मिनल में वर्तमान शाखा और फ़ोल्डर पथ कैसे प्रदर्शित कर सकता हूं?


मैं टीम ट्रीहाउस वीडियो में से कुछ देख रहा हूं और गिट के साथ काम करते समय उनके पास बहुत अच्छा लग रहा टर्मिनल है।

उदाहरण के लिए उनके पास (कुछ समान है):

mike@treehouseMac: [/Work/test - feature-branch-name] $ git add .
mike@treehouseMac: [/Work/test - feature-branch-name] $ git commit -m "Some feature."
mike@treehouseMac: [/Work/test - feature-branch-name] $ git checkout master
mike@treehouseMac: [/Work/test - master] $ git status

मैं अपने इच्छित टर्मिनल के बिट्स को अलग करने के लिए रंगों के साथ, किस टर्मिनल पर हूं, मेरी टर्मिनल मुझे कुछ उपयोगी जानकारी कैसे दिखा सकती है? क्या कुछ प्रकार की डी-फैक्टो प्लगइन है जो मुझे अभी तक नहीं मिली है?

मैं मैक ओएसएक्स 10.8 का उपयोग कर रहा हूँ


44
2018-06-27 02:20


मूल




जवाब:


यह एक प्लगइन के बारे में नहीं है। यह खोल में त्वरित चाल के बारे में है।

बैश में एक शांत सेटअप के लिए, बाहर की जाँच करें dotfiles इस आदमी की परियोजना:

https://github.com/mathiasbynens/dotfiles

एक फैंसी प्रॉम्प्ट पाने के लिए, शामिल करें .bash_prompt आपके में ~/.bash_profile या ~/.bashrc

अपने प्रश्न के समान सटीक संकेत प्राप्त करने के लिए, बदलें export PS1 के अंत में लाइन .bash_prompt इस तरह:

export PS1="\[${BOLD}${MAGENTA}\]\u\[$WHITE\]@\[$ORANGE\]\h\[$WHITE\]: [\[$GREEN\]\w\[$WHITE\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" - \")\[$PURPLE\]\$(parse_git_branch)\[$WHITE\]] \$ \[$RESET\]"

मैं सभी का उपयोग कर समाप्त हो गया .bash* एक महीने पहले इस भंडार से फाइलें, और यह वास्तव में मेरे लिए उपयोगी रही है।

गिट के लिए, इसमें अतिरिक्त उपहार हैं .gitconfig

और चूंकि आप एक मैक उपयोगकर्ता हैं, इसमें और भी उपहार हैं .osx


51
2018-06-27 04:02



इसके बाद मुझे मिल रहा है: bash: parse_git_branch: command not found - Sharikov Vladislav


सरल तरीका

खुला ~/.bash_profile अपने पसंदीदा संपादक में और नीचे दी गई सामग्री को नीचे जोड़ें।

तत्काल गिट शाखा।

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\u@\h \[\033[32m\]\w - \$(parse_git_branch)\[\033[00m\] $ "

जीआईटी शाखा का नाम टर्मिनल प्रोपेट (मैक) में जोड़ें


38
2017-12-01 05:32



मुझे अगली पंक्ति पर अपना संकेत देने के अंत में $ साइन से पहले \ n के साथ यह पसंद आया। - Gandalf458
पूरी तरह से अनुकूलित करने के लिए 5 मिनट ले लिया! यहां रंग हैं: misc.flogisoft.com/bash/tip_colors_and_formatting - rndrfero


मौजूदा महान उत्तरों पर विस्तार करने के लिए, एक महान दिखने वाले टर्मिनल को पाने का एक बहुत ही आसान तरीका ओपन सोर्स का उपयोग करना है dotfiles परियोजना।

https://github.com/mathiasbynens/dotfiles


enter image description here


ओएसएक्स और लिनक्स पर स्थापना मृत सरल है। टर्मिनल में निम्न आदेश चलाएं।

git clone https://github.com/mathiasbynens/dotfiles.git && cd dotfiles && source bootstrap.sh

यह जा रहा है:

  1. गिट रेपो क्लोन।
  2. cd फ़ोल्डर में
  3. स्थापना बैश स्क्रिप्ट चलाएं।

27
2018-02-07 20:54



इस पर रिवर्स कैसे करें इस पर कोई विचार ?? - ChickenWing24
@ चिकनविंग 24 को उलटाने का कोई तरीका ढूंढें? - ollaollu
@ollaollu मैंने इसे एक तरह से उलट दिया। हालांकि यह काफी समय पहले था, इसलिए 100% चरणों को याद नहीं किया जा सकता है। लेकिन मैंने जो किया वह मूल रूप से उन सभी फ़ाइलों / फ़ोल्डरों को हटा देता था जो उस रेपो से संबंधित थीं। - ChickenWing24
ठीक है धन्यवाद, इस तरह के कुछ का पालन किया और यह काम किया - ollaollu
यह पूरी तरह से काम करता है! - Nicolas Bodin-Ripert


मेरे संकेत में शामिल हैं:

  • अंतिम आदेश से बाहर निकलें स्थिति (यदि 0 नहीं है)
  • रूट जब विशिष्ट परिवर्तन
  • rsync-अंदाज user@host:pathname कॉपी-पेस्ट भलाई के लिए
  • गिट शाखा, सूचकांक, संशोधित, अनचाहे और अपस्ट्रीम जानकारी
  • सुंदर रंग

उदाहरण:   Screenshot of my prompt in action ऐसा करने के लिए, निम्नलिखित में जोड़ें ~/.bashrc:

#
# Set the prompt #
#

# Select git info displayed, see /usr/lib/git-core/git-sh-prompt for more
export GIT_PS1_SHOWDIRTYSTATE=1           # '*'=unstaged, '+'=staged
export GIT_PS1_SHOWSTASHSTATE=1           # '$'=stashed
export GIT_PS1_SHOWUNTRACKEDFILES=1       # '%'=untracked
export GIT_PS1_SHOWUPSTREAM="verbose"     # 'u='=no difference, 'u+1'=ahead by 1 commit
export GIT_PS1_STATESEPARATOR=''          # No space between branch and index status
export GIT_PS1_DESCRIBE_STYLE="describe"  # detached HEAD style:
#  contains      relative to newer annotated tag (v1.6.3.2~35)
#  branch        relative to newer tag or branch (master~4)
#  describe      relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
#  default       exactly eatching tag

# Check if we support colours
__colour_enabled() {
    local -i colors=$(tput colors 2>/dev/null)
    [[ $? -eq 0 ]] && [[ $colors -gt 2 ]]
}
unset __colourise_prompt && __colour_enabled && __colourise_prompt=1

__set_bash_prompt()
{
    local exit="$?" # Save the exit status of the last command

    # PS1 is made from $PreGitPS1 + <git-status> + $PostGitPS1
    local PreGitPS1="${debian_chroot:+($debian_chroot)}"
    local PostGitPS1=""

    if [[ $__colourise_prompt ]]; then
        export GIT_PS1_SHOWCOLORHINTS=1

        # Wrap the colour codes between \[ and \], so that
        # bash counts the correct number of characters for line wrapping:
        local Red='\[\e[0;31m\]'; local BRed='\[\e[1;31m\]'
        local Gre='\[\e[0;32m\]'; local BGre='\[\e[1;32m\]'
        local Yel='\[\e[0;33m\]'; local BYel='\[\e[1;33m\]'
        local Blu='\[\e[0;34m\]'; local BBlu='\[\e[1;34m\]'
        local Mag='\[\e[0;35m\]'; local BMag='\[\e[1;35m\]'
        local Cya='\[\e[0;36m\]'; local BCya='\[\e[1;36m\]'
        local Whi='\[\e[0;37m\]'; local BWhi='\[\e[1;37m\]'
        local None='\[\e[0m\]' # Return to default colour

        # No username and bright colour if root
        if [[ ${EUID} == 0 ]]; then
            PreGitPS1+="$BRed\h "
        else
            PreGitPS1+="$Red\u@\h$None:"
        fi

        PreGitPS1+="$Blu\w$None"
    else # No colour
        # Sets prompt like: ravi@boxy:~/prj/sample_app
        unset GIT_PS1_SHOWCOLORHINTS
        PreGitPS1="${debian_chroot:+($debian_chroot)}\u@\h:\w"
    fi

    # Now build the part after git's status

    # Highlight non-standard exit codes
    if [[ $exit != 0 ]]; then
        PostGitPS1="$Red[$exit]"
    fi

    # Change colour of prompt if root
    if [[ ${EUID} == 0 ]]; then
        PostGitPS1+="$BRed"'\$ '"$None"
    else
        PostGitPS1+="$Mag"'\$ '"$None"
    fi

    # Set PS1 from $PreGitPS1 + <git-status> + $PostGitPS1
    __git_ps1 "$PreGitPS1" "$PostGitPS1" '(%s)'

    # echo '$PS1='"$PS1" # debug    
    # defaut Linux Mint 17.2 user prompt:
    # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\033[00m\] $(__git_ps1 "(%s)") \$ '
}

# This tells bash to reinterpret PS1 after every command, which we
# need because __git_ps1 will return different text and colors
PROMPT_COMMAND=__set_bash_prompt

7
2017-08-04 04:13



यह एक जानकारी पैक पैक के लिए आश्चर्यजनक रूप से साफ कोड है। मैंने आपके प्रॉम्प्ट पर काम करने में कई घंटों बिताए और मूल रूप से यहां पहुंचने के लिए, संकटों से बाहर चढ़ाई की। प्रॉम्प्ट पर एक कस्टम, रंगीन, गिट स्थिति पर काम करते हुए मैं अत्यधिक इस कोड से शुरू करने की सलाह देता हूं। - wisbucky


आपके सिस्टम पर स्थापित गिट पैकेज में सूचनात्मक संकेत बनाने में आपकी सहायता करने के लिए बैश फ़ाइलें शामिल हैं। रंग बनाने के लिए, आपको अपने प्रॉम्प्ट में टर्मिनल एस्केप दृश्यों को सम्मिलित करने की आवश्यकता होगी। और, अंतिम घटक अंतर्निहित चर PROMPT_COMMAND का उपयोग कर प्रत्येक कमांड निष्पादित होने के बाद आपके प्रॉम्प्ट को अपडेट करना है।

निम्नलिखित शामिल करने के लिए अपने ~ / .bashrc को संपादित करें, और आपको अपने प्रश्न में प्रॉम्प्ट प्राप्त करना चाहिए, कुछ रंग भिन्नता मॉड्यूल करें।

#
# Git provides a bash file to create an informative prompt. This is its standard
# location on Linux. On Mac, you should be able to find it under your Git
# installation. If you are unable to find the file, I have a copy of it on my GitHub.
#
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/40-git-prompt.sh
#
source /usr/share/git/completion/git-prompt.sh

#
# Next, we need to define some terminal escape sequences for colors. For a fuller
# list of colors, and an example how to use them, see my bash color file on my GitHub
# and my coniguration for colored man pages.
#
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/10-colors.sh
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/40-less.sh
#
color_start='\e['
color_end='m'
color_reset='\e[0m'
color_bg_blue='44'

#
# To get a fancy git prompt, it's not sufficient to set PS1. Instead, we set PROMPT_COMMAND,
# a built in Bash variable that gets evaluated before each render of the prompt.
#
export PROMPT_COMMAND="PS1=\"\${color_start}\${color_bg_blue}\${color_end}\u@\h [\w\$(__git_ps1 \" - %s\")]\${color_reset}\n\$ \""

#
# If you find that the working directory that appears in the prompt is ofter too long,
# then trim it.
#
export PROMPT_DIRTRIM=3

2
2018-06-27 05:26