Windows 사용자를 위한 Git Bash 설정

Bora Lee
7 min readJul 17, 2019

--

배경색 변경부터 bash 파일을 이용한 커스터마이징(Git 명령어 자동 완성, 변경 여부 표시 등) 방법까지 다양한 설정 방법을 소개합니다.

이 글은 Udacity의 Git&GitHub강의Setting Up Your Workspace on Window를 기반으로 작성되었습니다.

배경색 변경

Git Bash의 기본 배경색은 검은색 입니다. Options 메뉴를 이용하면 흰색 등으로 배경색을 바꿀 수 있습니다.

좌측상단의 Git Bash 아이콘 클릭
Options… 메뉴 클릭
Looks의 Background… 클릭

dracula 등의 테마로 변경도 가능합니다.

Color Scheme Designer를 이용하면 색 배치를 직접 커스텀 할 수 있습니다.

Color Scheme Designer를 이용하여 가시성을 고려한 디자인 테마를 직접 설정

prompt 커스터 마이징

prompt를 직접 커스터마이징 해 자동완성과 변경 여부 표시 등의 유용한 기능을 활성화해보도록 하겠습니다. 자동완성 기능을 사용하면 $ git l을 입력한 상태에서 탭을 눌렀을 때, $git log가 자동으로 입력됩니다. 변경 여부 표시 기능을 사용하면 $git status를 입력하지 않고도 repository 변경 여부를 커맨드 라인에서 바로 확인할 수 있습니다(변경이 있는 경우 *, +의 기호로 변경 여부를 표시). 이외에도 아래 방법을 따라하면 prompt가 더 깔끔해집니다.

파일 다운로드

  1. git-completion.bash 파일

먼저, 링크를 클릭했을 때 열리는 git-completion.bash 파일을 Git Bash의 홈 디렉터리에 저장합니다.

홈 디렉터리란 무엇인가, 어떻게 찾나에 대한 글: https://violet-bora-lee.github.io/linux-survival-for-korean/#/linux-home-directories

마우스 오른쪽 버튼을 클릭해 ‘다른 이름으로 저장’

주의: git-completion.bash파일은 브라우저의 기능 때문에 .txt 확장자로 바뀐채 다운로드됩니다. 확장자를 bash로 꼭 바꿔주세요.

아래는 Downloads 디렉터리에 git-completion.txt파일을 다운로드 했을경우에 대한 설명입니다.

  • 홈 디렉터리로 이동하기: $cd ~ 또는 $cd
  • Download디렉터리에 다운받은 git-completion.txt파일을 홈 디렉터리에 이동하기: $mv Downloads/git-completion.txt git-completion.bash
  1. git-prompt.sh파일

같은 과정을 반복해 링크에 있는 git-prompt.sh 파일을 홈 디렉터리에 저장합니다.

  1. .bash_profile 파일

역시 같은 과정을 반복해 링크에 있는 .bash_profile_course 파일을 홈 디렉터리에 저장하고, 파일명을 .bash_profile로 변경합니다(주의: bash_profile앞의 .(점)을 잊지 마세요!).

  • 파일을 Downloads 디렉터리에 다운받은 경우: $mv Downloads/bash_profile_course .bash_profile
  • 주의: 이미 .bash_profile파일이 있는 경우엔 기존의 파일을 덮어쓰지 말고, 다운로드받은 .bash_profile_course의 코드를 기존 .bash_profile에 추가합니다.

GitBash를 재시작합니다.

.bash_profile 이해하기

bash_profile_course 소스 코드

.bash_profile이 무슨 역할을 하는지 간단히 살펴보도록 합시다. 경험 있는 UNIX 프로그래머들도 직접 bash 파일을 작성하기보다는 다른 개발자가 작성한 코드를 가져다 쓰는 경우가 많기 때문에, 소스 코드를 하나하나 이해하기보다는 개괄적으로 이해해 보도록 하겠습니다.

참고: bash 파일에서 줄 맨 앞의 #은 주석처리를 해줍니다.

# Enable tab completion
source ~/git-completion.bash

위 코드는 앞서 다운받은 git-completion.bash파일을 불러와 tab 자동완성 기능을 활성화해줍니다.

# colors!
green="\[\033[0;32m\]"
blue="\[\033[0;34m\]"
purple="\[\033[0;35m\]"
reset="\[\033[0m\]"

위 코드는 프롬프트에서 사용할 색을 지정해줍니다.

source ~/git-prompt.sh

위 코드는 앞서 다운받은 git-prompt.sh 파일을 불러옵니다. 이 파일은 commit ID를 보여주는 등의 git과 관련된 기능을 제공합니다.

export GIT_PS1_SHOWDIRTYSTATE=1

위 코드는 repository에 변경이 있는 경우, 상태에 따라 *나 + 기호가 표시되도록 해줍니다.

  • unstaged 변경: *
  • staged 변경: +
# '\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"

위 코드는 prompt 세팅을 변경해줍니다.

  • $purple\u: username을 보라색(purple)으로
  • $green\$(__git_ps1): 체크아웃한 commit의 hash나 기타 git 관련 정보를 녹색(green)으로
  • $blue \W $: 현재 디렉터리 위치와 $를 파란색으로
  • $reset: 그 이후의 정보는 기본색으로 변경
커스터마이징을 마친 후 git bash의 모습

위 그림을 보시면, username(learn)은 보라색으로, git 관련 정보(master 브랜치 이름, 변경 관련 정보)는 녹색, 현재 디렉터리 위치(reactnd-contacts-app, reactnd-contacts-server2)와 $는 파란색으로 변경된 것을 확인할 수 있습니다.

bash prompt가 어떻게 동작하는지, 어떻게 하면 커스터마이징 할 수 있는지 더 알고 싶다면 링크를 참고하시면 될 것 같습니다.

설정 전, 후 비교

.bash_profile을 수정하기 전과 후를 비교해 보면서 지금까지의 내용을 정리해 보도록 하겠습니다.

커스터마이징 전

위 그림은 Git과 Git Bash를 설치한 후 아무런 변경도 하지 않은 상태의 프롬프트를 캡처한 것입니다.

커스터마이징 후

위 그림은 커스터마이징을 적용한 후의 프롬프트를 캡처한 것입니다. 사용자 이름이나 git 상태가 깔끔하게 표시되는 것을 확인할 수 있습니다. 또한, $git status를 입력하지 않아도 변경 여부를 한눈에 파악할 수 있게 되었습니다(녹색 텍스트 참고). 이 외에도 tab을 눌러 자동완성이 가능하기 때문에 Git Bash를 잘 활용할 수 있게 됩니다.

--

--