How can I display the current branch and folder path in terminal?

前端 未结 13 1091
无人共我
无人共我 2020-12-04 07:09

I\'ve been watching some of the Team Treehouse videos and they have a very nice looking terminal when working with Git.

For example they have (something similar):

相关标签:
13条回答
  • 2020-12-04 07:34

    Based on 6LYTH3's answer I've decided to post my own due to some improvements that may come in handy:

    Simple solution

    Open ~/.bash_profile and add the following content

    # \[\e[0m\] resets the color to default color
    reset_color='\[\e[0m\]'
    #  \[\033[33m\] sets the color to yellow
    path_color='\[\033[33m\]'
    # \e[0;32m\ sets the color to green
    git_clean_color='\[\e[0;32m\]'
    # \e[0;31m\ sets the color to red
    git_dirty_color='\[\e[0;31m\]'
    
    # determines if the git branch you are on is clean or dirty
    git_prompt ()
    {
      # Is this a git directory?
      if ! git rev-parse --git-dir > /dev/null 2>&1; then
        return 0
      fi
      # Grab working branch name
      git_branch=$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')
      # Clean or dirty branch
      if git diff --quiet 2>/dev/null >&2; then
        git_color="${git_clean_color}"
      else
        git_color="${git_dirty_color}"
      fi
      echo " [$git_color$git_branch${reset_color}]"
    }
    
    export PS1="${path_color}\w\[\e[0m\]$(git_prompt)\n"
    

    This should:

    1) Prompt the path you're in, in color: path_color.
    2) Tell you which branch are you.
    3) Color the name of the branch based on the status of the branch with git_clean_color 
    for a clean work directory and git_dirty_color for a dirty one.
    4) The brackets should stay in the default color you established in your computer.
    5) Puts the prompt in the next line for readability.
    

    You can customize the colors with this list

    Sophisticated Solution

    Another option is to use Git Bash Prompt, install with this. I used the option via Homebrew on Mac OS X.

    git_prompt_list_themes to see the themes but I didn't like any of them.

    git_prompt_color_samples to see available colors.

    git_prompt_make_custom_theme [<Name of base theme>] to create a new custom theme, this should create a .git-prompt-colors.sh file.

    subl ~/.git-prompt-colors.sh to open git-prompt-colors.sh and customize:

    The .git-prompt-colors.sh file should look like this with my customization

        override_git_prompt_colors() {
          GIT_PROMPT_THEME_NAME="Custom"
    
          # Clean or dirty branch
          if git diff --quiet 2>/dev/null >&2; then
            GIT_PROMPT_BRANCH="${Green}"
          else
            GIT_PROMPT_BRANCH="${Red}"
          fi
        }
    
        reload_git_prompt_colors "Custom"
    

    Hope this helps, have a great day!

    0 讨论(0)
  • 2020-12-04 07:36

    Simple way

    Open ~/.bash_profile in your favorite editor and add the following content to the bottom.

    Git branch in prompt.

    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\] $ "
    

    Add Git Branch To Terminal Prompt (Mac)

    0 讨论(0)
  • 2020-12-04 07:39

    Keep it fast, keep it simple

    put this in your ~/.bashrc file.

    git_stuff() {
      git_branch=$(git branch --show-current 2> /dev/null)
      if [[ $git_branch == "" ]];then
        echo -e ""
      elif [[ $git_branch == *"Nocommit"* ]];then
        echo -e "No commits"
      else
        echo -e "$git_branch"
      fi
    }
    prompt() {
      PS1="\e[2m$(date +%H:%M:%S.%3N) \e[4m$(git_stuff)\033[0m\n\w$ "
    }
    PROMPT_COMMAND=prompt
    

    Then source ~/.bashrc

    0 讨论(0)
  • 2020-12-04 07:44

    There are many PS1 generators but ezprompt has the git status (2nd tab 'Status Elements' ) also.

    0 讨论(0)
  • 2020-12-04 07:44

    From Mac OS Catalina .bash_profile is replaced with .zprofile

    Step 1: Create a .zprofile

    touch .zprofile
    

    Step 2:

    nano .zprofile
    

    type below line in this

    source ~/.bash_profile
    

    and save(ctrl+o return ctrl+x)

    Step 3: Restart your terminal

    To Add Git Branch Name Now you can add below lines in .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\] $ "
    

    Restart your terminal this will work.

    Note: Even you can rename .bash_profile to .zprofile that also works.

    0 讨论(0)
  • 2020-12-04 07:45

    For Mac Catilina 10.15.5 and later version:

    add in your ~/.zshrc file

    function parse_git_branch() {
        git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
    }
    
    setopt PROMPT_SUBST
    export PROMPT='%F{grey}%n%f %F{cyan}%~%f %F{green}$(parse_git_branch)%f %F{normal}$%f '
    
    0 讨论(0)
提交回复
热议问题