Git - замена svn

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 branch

Переключемся в ветку:

Code

git checkout имя ветки

Покажет изменения:

Code

git status

Создать патч файл:

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

Добавить все изменения:

Code

git add *

По отдельности:

Code

git add имя файла

Сделать commit:

Code

git commit -a -m "work patch"

Можно на него полюбоваться:

Code

git log

Возвращение к чистым исходникам:

Code

git clean -f -x -d

Переключаемся в основную ветку:

Code

git checkout master

Удаляем созданную ветку:

Code

git branch имя ветки -D

Реверт всех изменений в коде:

Code

git reset --hard

Вопросы и ответы

Q:Вот ещё задачка: как заставить git не добавлять каждый раз в изменения определённую папку? например я положил папку ScriptDev2 в mangos\src\bindings, но при создании любых патчей она всплывает...
черепашка тупо не трогала папки где нет её файлов, а как быть с git?
A:В .git/info/exclude добавь
src/bindings/ScriptDev2/*

2228
2
1
Добавил: Juline
  • LuZer Спам

    А где взть сам патч sad

    02.03.2010 07:55
    0
  • Попрыгун Спам

    а это уже должна быть твоя забота

    30.03.2010 12:11
    0