Git. Распределённая система контроля версий. Была создана Линусом Торвальдсом для работы над ядром Linux. Следствие – широкое распространение в узких кругах, мощь и сложность.

Установить Git можно из портов MacPorts или Fink. Но этот метод чем дальше, тем меньше мне нравится – за нужным пакетом тянется длинный хвост зависимостей, часть из которых может заменять (в плане очерёдности в $PATH) штатные программы. Когда я вижу попытку установки perl5.8 при том, что в Mac OS X 10.6.2 уже и так стоит perl5.10, на меня нападает странное чувство, вынуждающее прервать установку. Или вспомним недавнюю загадку Кирилла Воронина про rsync, когда проблема с копированием данных была вызвана тем, что вместо штатного rsync вызывался rsync из портов без поддержки resource forks.

Поэтому я отбросил мысль о MacPorts и начал искать альтернативу. Нашёл проект “Git for OS X” на Google Code.

Если вам нужен Git, то дальнейшие объяснения излишни, расписывать, что выбирать при запуске инсталлятора смысла нет. Я поставил версию git-1.7.0-intel-leopard.dmg. Git ставится в /usr/local/git. После установки запустил скрипт “setup git PATH for non-terminal programs.sh”, находящийся в dmg, который добавляет переменную окружения $PATH с путём к git в файл ~/.MacOSX/environment.plist для корректной работы неконсольных программ.

Сконфигурируем git по рекомендациям из статьи “Simple Install of Git on Leopard“:

git config --global merge.tool opendiff

# Ignore Carp
git config --global core.excludesfile ~/.gitignore
touch               "$HOME/.gitignore"
echo '.DS_Store' >> "$HOME/.gitignore"
echo '._*'       >> "$HOME/.gitignore"
echo '.svn'      >> "$HOME/.gitignore"
echo '.hg'       >> "$HOME/.gitignore"

# Shortcuts
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch

# Colors? YES!
git config --global color.ui auto

# Personal Setup
git config --global user.name "Your Name"
git config --global user.email your_email@your-domain.com

# Setup Bash Completion
mkdir -p "$HOME/bin"
export PATH="$HOME/bin:$PATH"
echo 'export PATH="$HOME/bin:$PATH"'               >> ~/.bash_profile
cp "/usr/local/git/contrib/completion/git-completion.bash" ~/bin
echo 'source ~/bin/git-completion.bash'            >> ~/.bash_profile

# Add the current Git Branch to your Bash Prompt
echo "PS1='[\u@\h \w\$(__git_ps1 \" (%s)\")]\\$ '" >> ~/.bash_profile

Начать изучение Git можно с бесплатной книги “The Git Community Book” или с книги O’Reilly “Version Control with Git, 1st Edition“.