Чтобы скачать исходники из ветки Mangos
Код:
git clone git://github.com/mangos/mangos.git
Чтобы скачать и автоматически создать другую папку где будут лежать исходники.
Код:
git clone git://github.com/mangos/mangos.git название_папки
Чтобы обновить исходники в выбранной папке:
Код:
git pull origin master
Чтобы просмотреть все ветки (локальные + ветки удалённого репозитория):
Чтобы скачать исходники из определённой ветки: Сначала скачиваем исходники, потом:
Код:
git checkout -b имя_нужного_раздела origin/имя_нужного_раздела
Чтобы создать новую ветку:
Код:
git branch имя_раздела
Посмотреть все ветки:
Чтобы переключится в нужную ветку:
Код:
git checkout имя_раздела
Вывести изменения:
Чтобы создать патч:
Код:
git diff > имя файла.patch
Патч отличий чистых исходников и веток:
Код:
git diff master раздел -p > имя файла.patch
git diff master раздел > имя_патча.patch
Создание патча из разницы ревизий:
Код:
git diff id_commit1 id_commit2 > имя_файла.patch
Пример:
Код:
git diff 1f7e07689fcc8c60d6d768df8aa268d11a9e8bfe 69b2263cdb620020df0bc9968168046ff12fd7d4 > 7768-7785.patch
Применить патч:
Код:
git am < имя_патча.patch
или
Код:
git apply < имя_патча.patch
Применение патча с созданием новых файлов:
Код:
patch -p1 < имя файла.patch
Добавить все изменения:
По отдельности:
Сделать commit:
Код:
git commit -a -m "work patch"
Можно на него полюбоваться:
Возвращение к чистым исходникам:
Переключаемся в основную ветку:
Удаляем созданную ветку:
Код:
git branch имя_раздела -D
Реверт всех изменений в коде:
Скачать определённую ревизию(к примеру 10 ревизий назад):
Скачивая самую свежую ревизию, Вы скачиваете всю историю изменений с момента создания репозитория.
Поэтому, чтобы получить исходники, например, которые были 10 коммитов назад на коммит (x-10) нужно:
Код:
git checkout master
git reset HEAD~10
Единственное - все изменения после коммита (x-10) буду потеряны.
Нужно будет заново закачать их. (с) begemot
Переход к определенной ревизии:
Найти код commit для нужной ревизии
Код:
git log -1 --grep=[7501]
где -1 это количество шагов к нашей ревизии 7501 от последней загруженной
вывод
Код:
commit c879da174f4a2b6efbc59c43b34d580ff4de3efc
переход к нужной ревизии с созданием новой ветки "7501"
Код:
git checkout -b 7501 c879da174f4a2b6efbc59c43b34d580ff4de3efc
Насколько правильный вариант загрузки форк ветки в локальный репозиторий основной ветки ? Эти команды раньше обсуждались, но увы я их тут не нашел. Раньше ими не пользовался, а щас понадобились.
Код:
git remote add name git://github.com/name/mangos.git
git fetch name
git checkout -b branch-name name/remoute_branch_name
git pull name remoute_branch_name
В:Вот ещё задачка: как заставить git не добавлять каждый раз в изменения определённую папку? например я положил папку ScriptDev2 в mangos\src\bindings, но при создании любых патчей она всплывает... черепашка тупо не трогала папки где нет её файлов, а как быть с git?
О: B .git/info/exclude добавь src/bindings/ScriptDev2/*
Совет: Если вы пользуетесь системой контродя версий git, то возможно вам надоедает набирать длинные команды git status, git checkout, git commit, git branch. Можно прописать в ~/.gitconfig для них короткие алиасы:
Код:
[alias]
ci = commit
co = checkout
st = status
br = branch
Чтобы пропатчить ScriptDev
Код:
git am src/bindings/ScriptDev2/patches/имя_патча.patch
или
Код:
patch -p1 < src/bindings/scriptdev2/patches/имя_патча.patch