Git

Git bash 프롬프트 커스터마이징하기

date
Apr 22, 2024
thumbnail
git-bash-thumbnail.png
slug
git-bash-config
author
status
Public
tags
Git
summary
Git Bash 윈도우에서 프롬프트 커스터 마이징, 자동 완성 기능 적용하기
type
Post
category
Git
 
OSSCA 2024에서 만나게 된 이보라 강사님의 강의 내용 중 Git Bash 설정에 대한 내용에 덧붙여 포스팅하게 되었습니다. 윈도우 환경에서 Git Bash를 사용하는 사용자들을 위한 설정법을 소개합니다.
 
 

프롬프트 커스터마이징


 
1️⃣ Git Bash 환경에서 Git 버전을 확인합니다.
$ git --version
 
2️⃣ git-completion.bash 파일 받기
아래의 링크에 자신의 git 버전을 넣고 들어가서 파일을 다운로드하세요.
🔗
https://raw.githubusercontent.com/git/git/v{버전}/contrib/completion/git-completion.bash -o ~/.git-completion.bash
 
리눅스 명령어 curl로도 가능
리눅스 명령어 curl로도 가능
  • 저의 경우 v2.43.0 을 사용하고 있습니다.
  • 브라우저에서 txt 파일로 다운로드될 경우, 확장자를 .bash로 변경해주세요.
  • 홈 디렉터리로 git-completion.bash 파일을 이동시켜주세요.
 
3️⃣ git-prompt.sh 파일 받기
2번과 마찬가지로 자신의 버전을 넣어서 홈 디렉터리로 이동시킵니다. 확장자는 .sh입니다.
🔗
https://raw.githubusercontent.com/git/git/v{버전}/contrib/completion/git-prompt.sh
 
4️⃣ .bash_profile 수정하기
.bash_profile 파일에서 git-completion.bash, git-prompt.sh 파일을 불러와서 기능을 활성화합니다.
  • 기존 홈 디렉터리에 .bash_profile 파일이 있는 경우 아래 구문을 추가만 해주시면 됩니다.
  • 없으면 아래 내용이 담긴 파일을 생성하세요.
# Enable tab completion source ~/git-completion.bash # colors! green="\[\033[0;32m\]" blue="\[\033[0;34m\]" purple="\[\033[0;35m\]" reset="\[\033[0m\]" # Change command prompt source ~/git-prompt.sh export GIT_PS1_SHOWDIRTYSTATE=1 # '\u' adds the name of the current user to the prompt # '\$(__git_ps1)' adds git-related stuff # '\W' adds the name of the current directory export PS1="$purple\u$green\$(__git_ps1)$blue \W $ $reset"
.bash_profile
  • colors
    • 프롬프트에서 사용할 색 지정
  • export GIT_PS1_SHOWDIRTYSTATE=1
    • 저장소에 변경이 있는 경우 상태에 따라 *+ 기호가 표시되도록 함
    • unstaged인 경우 *
    • staged인 경우 +
  • export PS1="$purple\u$green\$(__git_ps1)$blue \W $ $reset”
    • 프롬프트 세팅 변경
    • $purple\u: username의 색상
    • $green\$(__git_ps1): 체크아웃한 commit의 hash나 기타 git 관련 정보의 색상
    • $blue \W $: 현재 디렉터리 위치와 $의 색상
    • $reset: 그 이후의 정보는 기본색으로 설정
 

적용 결과


적용 결과
적용 결과
  • [Tab] 키를 사용하면 자동 완성 기능을 사용하실 수 있어요.
    • ex) git cl 을 입력하고 Tab키를 눌러보세요.
    • ex) cd a를 입력하고 Tab키를 눌러보세요.
  • 프롬프트가 깔끔하게 수정되었어요.
 
 

Reference