• Страница 1 из 1
  • 1
Модератор форума: staford11  
Форум » CMaNGOS » Установка / Настройка CMaNGOS » FAQ GIT
FAQ GIT
Ps1x0z
Как-то так...
Чтобы скачать сорцы
Code
git clone git://github.com/mangos/mangos.git

Чтобы обновить:

Code
git pull origin master

Чтобы просмотреть все ветки (локальные + ветки удалённого репозитория):

Code
git branch -a

Чтобы скачать сорсы из определённой ветки: Сначала просто выкачиваем сорцы, а потом:

Code
git checkout -b ИМЯ_ЛОКАЛЬНОЙ_ВЕТВИ origin/ИМЯ_ВЕТВИ,_КОТОРУЮ_ХОТИМ_ВЫКАЧАТЬ

Создаем новую ветку:

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 diff id_commit1 id_commit2 > имя_файла.patch

пример:
Code
git diff 1f7e07689fcc8c60d6d768df8aa268d11a9e8bfe 69b2263cdb620020df0bc9968168046ff12fd7d4 > 7768-7785.patch

Применить патч:

Code
git am < имя файла.patch

или

Code
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

Скачать определённую ревизию(к примеру 10 ревизий назад):
Скачивая самую свежую ревизию, Вы скачиваете всю историю изменений с момента создания репозитория.
Поэтому, чтобы получить исходники, например, которые были 10 коммитов назад на коммит (x-10) нужно:

Code
git checkout master
git reset HEAD~10

Единственное - все изменения после коммита (x-10) буду потеряны.
Нужно будет заново закачать их. (с) begemot

Переход к определенной ревизии:
Найти код commit для нужной ревизии

Code
git log -1 --grep=[7501]
где -1 это количество шагов к нашей ревизии 7501 от последней загруженной
вывод commit c879da174f4a2b6efbc59c43b34d580ff4de3efc
переход к нужной ревизии с созданием новой ветки "7501"
git checkout -b 7501 c879da174f4a2b6efbc59c43b34d580ff4de3efc

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

Совет: Если вы пользуетесь системой контродя версий git, то возможно вам надоедает набирать длинные команды git status, git checkout, git commit, git branch. Можно прописать в ~/.gitconfig для них короткие алиасы:

Code
[alias]
     ci = commit
     co = checkout
     st = status
     br = branch

Взято с Getmangos

Сообщение # 1 написано 14.05.2009 в 21:22
Форум » CMaNGOS » Установка / Настройка CMaNGOS » FAQ GIT
  • Страница 1 из 1
  • 1
Поиск: