요새 모든 소스 코드의 관리에 여기저기서 마구 언급되고 있는 Git를 익혀서 쓰려고 노력하고 있는 중이다. 그런데, git repository browser인 gitk와의 첫 대면은 결코 좋은 인상이 아니었다. Mac에 설치되어 있는 gitk의 User Interface는 TCL/TK 위에서 실행되는 놈이라서 그런지, 아무리 글꼴을 바꾸고 꾸며봐도 영 Mac OS X의 Inteface와 맞지를 않았다.
그래서, 대체할 놈을 찾아보니, 대표적으로 두 놈을 만났다. 바로 GitNub과 GitX. 우선 인터페이스를 비교해보면, 두 놈 다 코코아 어플리케이션이라 GitK보다 산뜻한 느낌이고 UI 측면에서 GitX가 더 편안한 느낌이 들었으며, RubyCocoa로 짠 GitNub에 비해서 GitX는 순 코코아 프로그램이라 설치도 싶다.
참고로, 아래는 gitx를 위한 alias를 추가하면서 살펴본 .bash_login 파일에 있는 Git 관련 설정:
#########
# Git #
#########
# Show Git dirty state (and branch) in the prompt
RED="\[\033[0;31m\]"
YELLOW="\[\033[0;33m\]"
GREEN="\[\033[0;32m\]"
BLUE="\[\033[0;34m\]"
LIGHT_RED="\[\033[1;31m\]"
LIGHT_GREEN="\[\033[1;32m\]"
WHITE="\[\033[1;37m\]"
LIGHT_GRAY="\[\033[0;37m\]"
COLOR_NONE="\[\e[0m\]"
PROMPT_COMMAND=prompt_func
source ~/.git-completion.sh
# aliases
alias gb='git branch'
alias gba='git branch -a'
alias go='git checkout'
alias gcb='git checkout -b'
alias gd='git diff | mate' # show the diff in TextMate
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gcm='git commit -a -m'
# commit pending changes and quote all args as message
alias gst='git status'
alias glg='git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short'
alias gp='git push'
alias gl='git pull'
alias gk='gitk --all &' # open gitk in background
alias gx='gitx' # open much prettier gitk clone GitX
alias gt='git tag -a' # create an unsigned tag
# http://notes.envato.com/developers/rebasing-merge-commits-in-git/
alias gpthis='git push origin HEAD:$(git_current_branch)'
alias grb='git rebase -p'
alias gup='git fetch origin && grb origin/$(git_current_branch)'
alias gm='git merge --no-ff'
더불어, git editor로 TextMate을 쓰는 설정법에 따라 터미널에서 다음과 같이 적용해 주면 commit 때마다 TextMate 창을 띄워서 보기좋게 diff 정보를 열람할 수도 있다.