YTDB

Вернуться   YTDB > Корзина / Trash > Архив MaNGOS (пока не было ru-mangos) > Патчи

Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.

Если кто-то хочет задать вопрос по патчу - лучше не на этом форуме вообще.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.01.2010, 13:04   #1
Fear
Guest
 
Сообщений: n/a
Question GIT и несколько веток

Вот у меня есть некоторое не допонимание в таком вопросе:
К примеру мы скачиваем пропатченные сорцы scriptdev2 карателя командой "git clone git://github.com/insider42/scriptdev2.git" там имеется 2 ветки, master и 330, мне нужна 330, но если посмотреть "git branch", он показывает только master, вот как скачать 330?

Я пробывал создать у себя новую ветку ("git branch 330") с таким же названием, переключиться в нее ("git checkout 330") и выполнить команду "git pull origin 330", но не получается.


Ну и допустим мы скачиваем сорцы мангоса, там тоже есть несколько веток, по умолчанию идет master, а мне нужна 330, как обновить мои файлы до ветки 330?


Просто я немног запутался
  Ответить с цитированием
Старый 17.01.2010, 13:15   #2
NeatElves
YTDB dev
 
Аватар для NeatElves
 
Регистрация: 05.11.2009
Сообщений: 5,920
Сказал(а) спасибо: 91
Поблагодарили 5,383 раз(а) в 4,847 сообщениях
NeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспоримаNeatElves Репутация неоспорима
По умолчанию

Инструкций валом...
Пример:
Цитата:
git pull git://github.com/insider42/scriptdev2.git имя ветки
NeatElves вне форума   Ответить с цитированием
Старый 17.01.2010, 14:45   #3
timmit
YTDB dev, histori
 
Аватар для timmit
 
Регистрация: 05.11.2009
Сообщений: 1,597
Сказал(а) спасибо: 1
Поблагодарили 1,093 раз(а) в 971 сообщениях
timmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордиться
По умолчанию

Даже книжка по Git вышла недавно, даже с русским языком
__________________
ars longa vita brevis
timmit вне форума   Ответить с цитированием
Старый 17.01.2010, 15:34   #4
tempura
Not a member, is a noob
 
Аватар для tempura
 
Регистрация: 05.11.2009
Адрес: Азерот, Штормвинд
Сообщений: 530
Сказал(а) спасибо: 153
Поблагодарили 453 раз(а) в 170 сообщениях
tempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человек
По умолчанию

Цитата:
но если посмотреть "git branch", он показывает только master


Посмотреть все локальные ветки:
git branch

Посмотреть все ветки репозитория:
git branch -a

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

Переключaемся в ветку:
git checkout 330


хелп могу выложить.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 19.01.2010, 21:15   #5
KiriX
YTDB Helper
 
Аватар для KiriX
 
Регистрация: 05.11.2009
Сообщений: 333
Сказал(а) спасибо: 321
Поблагодарили 152 раз(а) в 81 сообщениях
KiriX Обладатель прекрасной аурыKiriX Обладатель прекрасной ауры
По умолчанию

На выкачку смежной удалённой ветки - какой-то хитрый запрос. Он точно был на вики мангос.ру - я сам его туда записывал. Сейчас у меня этой инфы нет
Всё, что у меня осталось:
Код:
Вобщем собрал все основные команды в кучу:
Чтобы скачать сорцы:git clone git://github.com/mangos/mangos.git
Чтобы обновить:git pull origin master
Создаем новую ветку: git branch имя ветки
Посмотреть все ветки: git branch
Переключемся в ветку:git checkout имя ветки
Покажет изменения:git status
Создать патч файл:git diff > имя файла.patch
Патч отличий чистых сырцов и ветки:git diff master ветка -p > имя файла.patch
git diff master ветка > имя файла.patch
Применить патч:git am < имя файла.patch
git apply < имя файла.patch
Применение  патча с созданием новых файлов:patch -p1 < имя файла.patch
Добавить все изменения:git add *
По отдельности:git add имя файла
Сделать commit:git commit -a -m "work patch"
Можно на него полюбоваться:git log
Возвращение к чистым исходникам:git clean -f -x -d
Переключаемся в основную ветку:git checkout master
Удаляем созданную ветку:git branch имя ветки -D

Собрано на просторах форума, думаю должно быть быть именно здесь

Вобщем собрал все основные команды в кучу:
Чтобы скачать сорцы:
Код:
git clone git://github.com/mangos/mangos.git

Чтобы обновить:
Код:
git pull origin master

Создаем новую ветку:
Код:
git branch имя ветки

Посмотреть все ветки:
Код:
git branch

Переключемся в ветку:
Код:
git checkout имя ветки

Покажет изменения:
Код:
git status

Создать патч файл:
Код:
git diff > имя файла.patch

Патч отличий чистых сырцов и ветки:
Код:
git diff master ветка -p > имя файла.patch
git diff master ветка > имя файла.patch

Применить патч:
Код:
git am < имя файла.patch
git apply < имя файла.patch

Применение патча с созданием новых файлов:
Код:
patch -p1 < имя файла.patch

Добавить все изменения:
Код:
git add *

По отдельности:
Код:
git add имя файла

Сделать commit:
Код:
git commit -a -m "work patch"

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

Возвращение к чистым исходникам:
Код:
git clean -f -x -d

Переключаемся в основную ветку:
Код:
git checkout master

Удаляем созданную ветку:
Код:
git branch имя ветки -D

Реверт всех изменений в коде:
Код:
git reset --hard

Патчи из другой ветки:
git branch 1, git checkout 1, затем одну из приведенных выше git pull, потом git diff master 1 -p > new_patch.patch , копируем его мне. Потом git checkout master, git branch -D 1 и по новой, но с другим git pull, опять же приведённым выше.

Откат патча:
patch -p1 -R < /путь до патча/*.patch
Выкачиваются же из другой удалённой ветки как-то так:
git clone git://github.com/mangos/mangos.git
git pull branch ИМЯ_ЛОКАЛЬНОЙ_ВЕТКИ origin ИМЯ_УДАЛЁННОЙ_ВЕТКИ
Это не точно, это приблизительно по памяти
KiriX вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Mayss (03.02.2010)
Старый 19.01.2010, 21:31   #6
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 06.11.2009
Сообщений: 677
Сказал(а) спасибо: 592
Поблагодарили 690 раз(а) в 289 сообщениях
Konctantin Великолепный пример подражанияKonctantin Великолепный пример подражанияKonctantin Великолепный пример подражанияKonctantin Великолепный пример подражанияKonctantin Великолепный пример подражанияKonctantin Великолепный пример подражания
По умолчанию

Цитата:
Даже книжка по Git вышла недавно, даже с русским языком
гиде, можно увидеть?
Konctantin вне форума   Ответить с цитированием
Старый 19.01.2010, 21:47   #7
timmit
YTDB dev, histori
 
Аватар для timmit
 
Регистрация: 05.11.2009
Сообщений: 1,597
Сказал(а) спасибо: 1
Поблагодарили 1,093 раз(а) в 971 сообщениях
timmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордиться
По умолчанию

http://habrahabr.ru/blogs/Git/80909/ в этой теме посмотри, там и на англ. и русский есть, и pdf и еще другое
__________________
ars longa vita brevis
timmit вне форума   Ответить с цитированием
8 пользователя(ей) сказали cпасибо:
Fedia22 (19.01.2010), Konctantin (19.01.2010), Mayss (03.02.2010), Shadez (20.01.2010)
Старый 21.01.2010, 15:12   #8
Zetget
Guest
 
Сообщений: n/a
По умолчанию

щас выкачиваю с ветки так (на lunix / ubuntu ):
git clone git://github.com/insider42/scriptdev2.git ~/mangos/scripts -o 330

на винде раньше выкачивал так:
git clone git://github.com/insider42/scriptdev2.git -b 330
  Ответить с цитированием
Старый 24.01.2010, 17:54   #9
Кот ДаWINчи
Новичок
 
Аватар для Кот ДаWINчи
 
Регистрация: 09.11.2009
Адрес: Северный Урал
Сообщений: 18
Сказал(а) спасибо: 120
Поблагодарили 47 раз(а) в 14 сообщениях
Кот ДаWINчи Скоро придёт к известности
Отправить сообщение для Кот ДаWINчи с помощью ICQ
Wink

Вот собрал инструкцию по GIT. Пользуйтесь. Материал на гуглил в интернете. Потом слегка отформатировал и конвертанул в CHM.
Вложения
Тип файла: zip GIT.zip (55.1 Кб, 1107 просмотров)
Кот ДаWINчи вне форума   Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
Konctantin (24.01.2010), StinK (24.01.2010)
Старый 24.01.2010, 22:39   #10
Chesterfield
Guest
 
Сообщений: n/a
По умолчанию

  Ответить с цитированием
Старый 24.01.2010, 23:09   #11
Кот ДаWINчи
Новичок
 
Аватар для Кот ДаWINчи
 
Регистрация: 09.11.2009
Адрес: Северный Урал
Сообщений: 18
Сказал(а) спасибо: 120
Поблагодарили 47 раз(а) в 14 сообщениях
Кот ДаWINчи Скоро придёт к известности
Отправить сообщение для Кот ДаWINчи с помощью ICQ
По умолчанию

Цитата:
Сообщение от Chesterfield Посмотреть сообщение
Конструктива не вижу в данной фразе.... это не просто оффтопик, а злейший оффтопик. Здесь люди задают вопросы про ГИТ.


Теперь по теме.

Я обычно скачиваю ветку master

затем чтобы перейти на другую (например 330)
делаю так:
git branch 330
git Checkout 330

и всё в репозитории уже версия под 330

чтобы вернуться к master
делаю так:
git branch master
git Checkout master

при этом скачивается с инета очень мало. (посравнению со всем репозиторием)
Кот ДаWINчи вне форума   Ответить с цитированием
Старый 24.01.2010, 23:11   #12
timmit
YTDB dev, histori
 
Аватар для timmit
 
Регистрация: 05.11.2009
Сообщений: 1,597
Сказал(а) спасибо: 1
Поблагодарили 1,093 раз(а) в 971 сообщениях
timmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордитьсяtimmit За него можно гордиться
По умолчанию

Цитата:
Сообщение от Chesterfield Посмотреть сообщение
Можно подробнее, чем он лучше?
__________________
ars longa vita brevis
timmit вне форума   Ответить с цитированием
Старый 24.01.2010, 23:23   #13
Chesterfield
Guest
 
Сообщений: n/a
По умолчанию

Цитата:
Конструктива не вижу в данной фразе....
Да не знаю что меня дернуло... но раз начал

Собщем давно сидел на Subversion как и все, и никаких проблем не знал, потом мангос вдруг резко перешел на git. Для меня эта система была нова, и понять я её сразу не смог, но как понял, то она мне понравилась. Тут тебе и ветки, и форки, и мержи - чего только нет. Но потом я узнал про mercurial. Система впринципе таже, только для чего было разделять коммит и слив коммита? Сначала не я понял, но когда поюзал, то понял что это самая удобная система управления версиями для меня. Чем она лучше гита рассказывать не буду (все это можно найти в инете по запросу hg vs git), но мне на данный момент больше всего нравится hg. Думаю кто юзал, тот меня понимает
  Ответить с цитированием
Старый 27.01.2010, 00:29   #14
KiriX
YTDB Helper
 
Аватар для KiriX
 
Регистрация: 05.11.2009
Сообщений: 333
Сказал(а) спасибо: 321
Поблагодарили 152 раз(а) в 81 сообщениях
KiriX Обладатель прекрасной аурыKiriX Обладатель прекрасной ауры
По умолчанию

Цитата:
Сообщение от Кот ДаWINчи Посмотреть сообщение
Я обычно скачиваю ветку master // git clone - и мы выкачиваем удалённую ветку по умолчанию

затем чтобы перейти на другую (например 330)
делаю так:
git branch 330 // нормальная команда - создаёт локальную ветку, по умолчанию - копия того, что выкачано командой git clone в самом начале
git Checkout 330 // Ага - первой командой ветку создали, а этой - в неё перешли/переключились

и всё в репозитории уже версия под 330 // из всего вышесказанного следует, что данная строка - бред

чтобы вернуться к master // Четыре строки просто без комментариев...
делаю так:
git branch master
git Checkout master

при этом скачивается с инета очень мало. (посравнению со всем репозиторием) // Ну естественно!!! "Очень мало" и "посравнению" как нельзя более точно подходит, если учесть, что таким образом git в интрнет вообще не обращается
Извините за грубость, но это бред сивой кобылы (чтим комменты). Не вводите, пожалуйста, людей в заблуждение.
Без обид, просто я постоянно работаю с этими командами и отлично знаю что и как они делают. Прежде чем перечить мне - просто отключи интернет и попробуй проделать эти же операции и ты узришь чудо: всё получится, т.к. при использовании данных команд никакого обращения к интернету гит не производит...



P.S: Первый же запрос в гугле вывел меня на вовжопаподобный сайт, куда кто-то заботливо перекатал текст из магос.ру вики. Узнаю свой текст (саму команду говорил в своё время TOM_RUS, я лишь записал на человекопонятном языке на вики)
Код:
Чтобы скачать сорсы из определённой удалённой ветки:
Сначала просто выкачиваем сорсы:
git clone АДРЕС
Затем можем переключиться в любую выбранную удалённую ветку:
git checkout -b ИМЯ_ЛОКАЛЬНОЙ_ВЕТВИ origin/ИМЯ_УДАЛЁННОЙ_ВЕТВИ_КОТОРУЮ_ХОТИМ_ВЫКАЧАТЬ

Пример для сорсов Карателя:
git clone git://github.com/insider42/mangos.git
git checkout -b OLD origin/322_stable
Таким образом и вправду выкачивается очень быстро
+ ещё всё что там было:
KiriX вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Кот ДаWINчи (30.01.2010)
Старый 28.01.2010, 22:08   #15
Moonkins
Guest
 
Сообщений: n/a
По умолчанию

Цитата:
Чтобы скачать сорсы из определённой удалённой ветки:
Сначала просто выкачиваем сорсы:
git clone АДРЕС
Затем можем переключиться в любую выбранную удалённую ветку:
git checkout -b ИМЯ_ЛОКАЛЬНОЙ_ВЕТВИ origin/ИМЯ_УДАЛЁННОЙ_ВЕТВИ_КОТОРУЮ_ХОТИМ_ВЫКАЧАТЬ

Пример для сорсов Карателя:
git clone git://github.com/insider42/mangos.git
git checkout -b OLD origin/322_stable
Таким образом и вправду выкачивается очень быстро
Прозьба привести пример на сорцах карателя 330_test
Скачиваю: git clone git://github.com/insider42/mangos.git
Использую: git checkout -b OLD origin/330_test
Пишет: fatal: not a git repository: .git
  Ответить с цитированием
Старый 28.01.2010, 22:36   #16
tempura
Not a member, is a noob
 
Аватар для tempura
 
Регистрация: 05.11.2009
Адрес: Азерот, Штормвинд
Сообщений: 530
Сказал(а) спасибо: 153
Поблагодарили 453 раз(а) в 170 сообщениях
tempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человек
По умолчанию

вот странно.... цепочка:
git clone git://github.com/insider42/mangos.git
git pull origin 330_stable
нормально выкачивает стабильную ветку...

цепочка:
git branch 330_test
git checkout 330_test
git pull origin 330_test
нормально создает новую локальную ветку, переключается в нее, и обновляет в ней сорцы.

Не мог бы ты подробнее описать, что именно ты хочешь сделать?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 28.01.2010, 23:10   #17
Alexstrasza
Guest
 
Сообщений: n/a
По умолчанию

есть еще и программы-фронтэнды к git,
а для mangos на github еще и можно скачать снапшоты
(выбираете нужную ветку, тыкаете в последний коммит, жмете на кнопочку download source)

Последний раз редактировалось Alexstrasza; 28.01.2010 в 23:12.
  Ответить с цитированием
Старый 29.01.2010, 01:17   #18
KiriX
YTDB Helper
 
Аватар для KiriX
 
Регистрация: 05.11.2009
Сообщений: 333
Сказал(а) спасибо: 321
Поблагодарили 152 раз(а) в 81 сообщениях
KiriX Обладатель прекрасной аурыKiriX Обладатель прекрасной ауры
По умолчанию

Цитата:
Сообщение от Moonkins Посмотреть сообщение
Прозьба привести пример на сорцах карателя 330_test
Скачиваю: git clone git://github.com/insider42/mangos.git
Использую: git checkout -b OLD origin/330_test
Пишет: fatal: not a git repository: .git
Я пример для чего вообще писал? Для кого? Кому тут в столь ясном примере что-то может быть неясно???
Может вам эти сорсы вообще выкачать и в архиве положить?
Обидно, что вы даже ошибку не удосужились хотя бы попытаться перевести
Цитата:
Сообщение от tempura Посмотреть сообщение
вот странно.... цепочка:
git clone git://github.com/insider42/mangos.git -- ну да - выкачиваем удалённую ветку по умолчанию
git pull origin 330_stable -- простое обновление выкаченной ветки, кстати, ветка 330_stable и есть ветка по умолчанию сейчас в репозитории Карателя
нормально выкачивает стабильную ветку...

цепочка:
git branch 330_test -- ага - создали ЛОКАЛНУЮ ветку, копию 330_stable в нашем случае, с НАЗВАНИЕМ ветки 330_test
git checkout 330_test -- переключились в только что созданную ветку
git pull origin 330_test -- СЛИЛИ локальную ветку (которая на самом-то деле 330_stable) с удалённой веткой 330_test
нормально создает новую локальную ветку, переключается в нее, и обновляет в ней сорцы.
Это не совсем корректный пример... Таким образом вы выкачиваете ветку по умолчанию удалённого репозитория и СЛИВАЕТЕ её с веткой 330_test... В случае карателя и сейчас - это прокатывает, т.к. 330_stable сейчас девственно чиста + меньшей ревизии, чем 330_test и сливая её с веткой 330_test вы не только накладываете на неё патчи, но и обновляете сами исходники мангоса. Когда набор патчей будет идентичен, а в 330_test будут теже патчи что и в стейбл + новые - при такой цепочке вы очень даже можете получить конфликты при слиянии. Мой же способ выкачивает ТОЛЬКО указанную удалённую ветки ни с чем её не сливая.
Темпура, таким образом всю твою цепочку можно легко сократить до:
Код:
git clone git://github.com/insider42/mangos.git
git pull origin 330_test
В итоге получим всё тоже самое, что и в вашей длинной цепочке.
KiriX вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
tempura (29.01.2010)
Ответ

Метки
git


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 07:46. Часовой пояс GMT +4.


YTDB - MaNGOS DataBase

Русский форум Мангос - официальный форум RMDC

Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума YTDB будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot
Punk's On-Air - Punk, Folk, Blues, Ska Bascinet - реконструкция denw IL-2 Training Книготорговая Компания «А-5» - художественная, учебная литература, скидки, опт и мелкий опт, доставка, дешево, низкие цены издательства