Git
— распределённая система управления версиями файлов и совместной
работы. Проект был создан Линусом Торвальдсом для управления
разработкой ядра Linux. На сегодняшний день поддерживается Джунио
Хамано (Junio C. Hamano).
Удалённый доступ к репозиториям Git
обеспечивается git-daemon, SSH, или HTTP сервером. TCP-сервис
git-daemon входит в дистрибутив Git и является наряду с SSH наиболее
распространённым и надёжным методом доступа. HTTP метод доступа,
несмотря на ряд ограничений, очень популярен в контролируемых сетях,
потому что позволяет использование существующих конфигураций сетевых
фильтров.
Бывают проблемы с windows.
В настоящее время проект MANGOS начал активно использовать git систему для своих репозидиев. Git пришол на замену svn.
Вобщем собрал все основные команды в кучу:
Чтобы скачать сорцы:
Code
git clone git://github.com/mangos/mangos.git
Чтобы обновить:
Code
git pull origin master
Создаем новую ветку:
Code
git branch имя ветки
Посмотреть все ветки:
Переключемся в ветку:
Code
git checkout имя ветки
Покажет изменения:
Создать патч файл:
Code
git diff > имя файла.patch
Патч отличий чистых сырцов и ветки:
Code
git diff master ветка -p > имя файла.patch
git diff master ветка > имя файла.patch
Применить патч:
Code
git am < имя файла.patch
git apply < имя файла.patch
Применение патча с созданием новых файлов:
Code
patch -p1 < имя файла.patch
Добавить все изменения:
По отдельности:
Сделать commit:
Code
git commit -a -m "work patch"
Можно на него полюбоваться:
Возвращение к чистым исходникам:
Переключаемся в основную ветку:
Удаляем созданную ветку:
Code
git branch имя ветки -D
Реверт всех изменений в коде:
Вопросы и ответы
Q:Вот ещё задачка: как заставить git не добавлять каждый раз в
изменения определённую папку? например я положил папку ScriptDev2 в
mangos\src\bindings, но при создании любых патчей она всплывает...
черепашка тупо не трогала папки где нет её файлов, а как быть с git?
A:В .git/info/exclude добавь
src/bindings/ScriptDev2/*