GIT Контроль версий

Быстрый старт c GIT

Установка git:

// install
# apt-get install git-core

// config
# git config --global user.name "username"
# git config --global user.email mail@mail.com
# git config --global core.editor vim

// Если вы собираетесь начать использовать
// Git для существующего проекта, то вам 
// необходимо перейти в проектный каталог
// и в командной строке ввести
# git init

// Далее добавляем отдельно каждый файл
// и каждую папку (вложенное подтянется само)
# git add index.php some_folder1 some_folder2

// Создаем "голый" репозиторий на сервере
// для того чтобы видеть по сети/ssh
# git clone --bare /home/my_project/.git /git/my_project.git

// Теперь можем стянуть проект на удаленный сервер
// В текущей директории появится папка с проектом
# git clone root@www.my-site.com:/git/my_project.git

Документация

о GIT на русском (BOOK)

Пошаговая инструкция

Софт

gitk — Распространяется с git, очень удобная штука, для просмотра логов (git log)

Список часто используемых комманд

Работа с локальными файлами

git add Добавление новых файлов/директорий в проект
git commit Заливаем изменения в репозиторий
git commit —amend Повтор последнего коммита (можно изменить комментарий к комиту, добавить файл, который забыли закомитить)
git reset HEAD Отменяет индексацию файла (если вы добавили не нужный в данном комите файл)
git checkout — Восстанавливает файл из репозитория, убирает изменения

Работа с удаленными репозиториями

git remote Просмотреть какие удалённые серверы у вас уже настроены
git remote -v Посмотреть какому URL соответствует сокращённое именя в Git
git remote add [сокращение] [url] Добавить новый удалённый Git-репозиторий под именем-сокращением, к которому будет проще обращаться
git fetch [remote-name] Для получения данных из удалённых проектов. Данная команда связывается с указанным удалённым проектом и забирает все те данные проекта, которых у вас ещё нет. Важно отметить, что команда fetch забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками, и не модифицирует то, над чем вы работаете в данный момент.
git pull Как правило извлекает (fetch) данные с сервера, с которого вы изначально склонировали, и автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.
git push origin master Когда ваш проект достигает момента, когда вы хотите поделиться наработками, вам необходимо отправить (push) их в главный репозиторий. Команда для этого действия простая: git push [удал. сервер] [ветка].