리눅스 bash shell에서 git 상태 정보 보기

리눅스 쉘에서 git로 관리되는 프로젝트들을 작업하다보면 각 프로젝트들의 git 상황이 궁금 할 때가 많습니다. 일반적인 해결책이라면 해당 디렉토리로 이동해서 git status 명령을 입력하는 것입니다. 어떤 파일들이 아직 commit 되지 않았는지, 혹은 push 되지 않았는지, stash된 파일들은 없는지 등은 매번 이렇게 까다롭게 각 디렉토리로 이동하여 체크해보아야 합니다.

윈도우에서 svn을 이용할 때를 돌아보면 TortoiseSVN처럼 탐색기에서 아이콘 오버레이로 각 디렉토리의 상황을 수월하게 보여주는 도구들이 있어서 무척 편리했습니다. 그렇다면 리눅스 쉘에서 이를 빠르고 손쉽게 체크 할 수 있는 방법은 없을까 하여 찾아보다가 매우 유용한 방법이 있어서 공유합니다.

bash 쉘에서 프롬프트에 git의 정보를 보여주는 도구입니다. 현재의 브랜치 이름, 원격 저장소와의 차이, 수정된 파일의 개수, 스테이지 된 파일의 개수 등을 보여줍니다.

링크: https://github.com/magicmonty/bash-git-prompt



간단한 설치 방법입니다:
  1. 프로젝트 git repository를 home 디렉토리에서 clone 합니다.
    git clone
    https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt 
  2. 해당 스크립트를 수행합니다.
    source ~/.bash-git-prompt/gitprompt.sh
     
  3. 다음 로그인 시에 자동 적용을 위해 ~/.bashrc 파일에서 gitprompt.sh를 source 시키는 코드를 추가합니다.
    source ~/.bash-git-prompt/gitprompt.sh

프롬프트에는 다음과 같은 방식으로 정보를 표현합니다:

기본 프롬프트 구조:
  • (<브랜치 이름> <브랜치 상태>|<로컬 상태>)

저장소 정보 심볼:
  •  : 저장소가 깨끗한 상태
  • ●n  :  n개의 파일들이 stage된 상태 (add)
  • ✖n  :  n개의 파일들이 충돌(conflict)이 발생하여 병합(merge)되지 못한 상태 
  • ✚n  :  n개의 파일들이 수정되었으나 stage되지 않은 상태
  • …n  :  n개의 파일들이 track되지 않는 상태 (필요하다면 ignore 시켜야겠죠?)
  • ⚑n  :  n개의 파일들이 stash로 저장 된 상태
  • ↑n  :  n개의 커밋이 존재하고 push를 기다리는 상태
  • ↓n  :  원격 저장소에 n개의 커밋이 푸쉬되었으며, 내 로컬 저장소로 pull을 기다리는 상태


0 comments:

댓글 쓰기

Powered by Blogger.

Popular Posts