Просмотр полной версии : Небольшая помощь по Git
Кому интересно, советую прочитать эти две статьи
http://habrahabr.ru/blogs/Git/75728/#habracut
http://habrahabr.ru/blogs/Git/76084/#habracut
Вот куча мусора - на всякий случай. Мне, для моих локальных ограниченных целей, этого до сих пор вполне хватает.
Чтобы скачать сорцы:
git clone git://github.com/mangos/mangos.git
git clone git://github.com/insider42/mangos.git
git clone git://github.com/insider42/scriptdev2.git
Чтобы обновить:
git pull origin master
git pull origin mangos-0.12
git pull origin 330
Создаем новую ветку:
git branch mangos-0.12
git branch 330
Посмотреть все локальные ветки:
git branch
Посмотреть все ветки репозитория:
git branch -a
Переключaемся в ветку:
git checkout mangos-0.12
git checkout 330
Покажет изменения:
git status
Создать патч
git diff > filename.patch
Применить патч
git am < filename.patch
git apply < filename.patch
Откатить определенный патч:
patch -p1 -R < filename.patch
Возвращение к чистым исходникам:
git clean -f -x -d
Реверт всех изменений в коде:
git reset --hard
Применение патча сделанного на TortoiseSVN
команда:
git apply < ..\6761_speed_cheat_fix_beta.patch
c игнором ошибок
git apply --stat /home/mangos_redeye/parches/wotlk_rev20_0.patch
примененение патча
patch -p1 < test.patch
создание патча
git diff > test.patch
Cоздание патча:
1. создаем новый branch
git branch mypatch
2. переключаемся в него
git checkout mypatch
3. накатываем патч (см. выше) и меняем файлы. Добавляем все измененные файлы:
git add mangosd/mangosd.conf.dist.in
И это для каждого файлика
4. После этого делаем коммит:
git commit -m "Test patch"
можно на него полюбоваться командой
git log
5. Ну и, собственно, делаем патчик:
git diff master mypatch > test.patch
где master - это исходный бранч чистых исходников, а mypatch - наш бранч в котором мы игрались с патчем
Примечание:
git commit -a
Делает коммит с учетом удаленных/измененных файлов (новые файлы все равно нужно добавить вручную)
Сначала скачать обычные, потом:
git checkout -b TBC origin/mangos-0.12
git checkout -b WotLK origin/310
где WotLK - название локального бранча
Во первых, заведите для себя отдельную ветку
git branch master1
git checkout master1
и делайте в ней все патчи свои. Каждый раз сохраняйте свои изменения путем создания коммита
git commit -a -m "All_patchs_moy "
git status
git log
Далее просто обновляйте свой коммит не меняя его
git checkout master
git pull git://github.com/insider42/mangos.git master
git pull origin master
git checkout master1
git merge master
git status — смотрим на проблемные места исправляем
git commit -a -m " fix conflicts1" сохраняемся коммитом
git log
Куча проблем с ежедневными патчами исчезнет.
Посмотреть номер последнего коммита имеющихся исходников:
git show
Советую почитать на досуге (http://habrahabr.ru/blogs/Git/60347/) :)
Как получить список всех патчей, в виде cherry-pick'ов ?
Раньше было так:
git log --reverse --pretty=tformat:'git cherry-pick %h # %s' | grep "\[patch"
vBulletin® v3.8.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot