Git
Пример работы с Git
Имеем две машины: "рабочую" для хранения базового репозитория и работающего проекта, и локальную, на которой будем вносить в этот репозиторий правки.
Предположим, что у нас имеется директория "проект" в которой находится некоторый набор исходных текстов.
Для создания нового репозитория и помещения в него данных исходников, переходим в директорию "проект" и выполняем:
git init
В директории "проект" при этом будет создана поддиректория .git, содержащая всю связанную с репозиторием информацию.
Затем добавляем ранее созданные в директории "проект" файлы:
git add .
Посмотреть статус репозитория можно командой
git status
Для применения изменений (выполнения коммита):
git commit
После внесения правок для коммита всех измененных файлов, без их отдельного добавления через git add:
git commit -a
Для просмотра лога коммитов:
git log
Для того, чтобы по SSH зайти на "хост" под именем "логин" и клонировать на свою машину репозиторий, находящийся с директории "/home/логин/проект" (префикс ssh:// добавляется по умолчанию, master тоже можно не писать)
git clone логин@хост:/home/логин/проект master
Для того чтобы через некоторое время синхронизировать из основного или другого репозитория изменения, нужно выполнить:
git pull логин@хост:/home/логин/проект master
Локальный клон сделан.
Далее правим в созданной на локальной машине "проект" и коммитим обратно изменения (в ветку master):
git commit -a -m "комментарий о проделанной работе"
Если ошиблись и нужно вернуть все обратно:
git revert
Чтобы зафиксировать версию (если наступил такой момент):
git tag тэг_версии
Когда все готово, помещаем изменения в основой репозиторий:
git push логин@хост:/home/логин/проект master
Для того, чтобы сгенерировать рабочий проект (в нашем случае сайт) на рабочем сервере нужно выполнить в директории с проектом:
git update-server-info git checkout HEAD -f
Вернуться к прошломй ревизии:
git checkout HEAD~1
К позапрошлому:
git checkout HEAD~2
Построить проект с заданным номером версии:
git checkout тэг_версии
Список не помещаемых репозиторий файлов можн определить через файл .gitignore, в котором построчно можно перечислить маски для игнорирования, например, *.log *.o