PDA

Просмотр полной версии : Небольшая помощь по Git


timmit
23.11.2009, 19:39
Кому интересно, советую прочитать эти две статьи
http://habrahabr.ru/blogs/Git/75728/#habracut
http://habrahabr.ru/blogs/Git/76084/#habracut

tempura
23.11.2009, 20:00
Вот куча мусора - на всякий случай. Мне, для моих локальных ограниченных целей, этого до сих пор вполне хватает.

Чтобы скачать сорцы:
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

Mr.Grom
23.11.2009, 21:36
Советую почитать на досуге (http://habrahabr.ru/blogs/Git/60347/) :)

Fer
31.12.2009, 11:14
Как получить список всех патчей, в виде cherry-pick'ов ?
Раньше было так:
git log --reverse --pretty=tformat:'git cherry-pick %h # %s' | grep "\[patch"