Самостоятельная работа по Git
Описание файла
PDF-файл из архива "Самостоятельная работа по Git", который расположен в категории "". Всё это находится в предмете "практикум мк" из 5 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Системы контроля версийПрактикум 3 курсОсень 2015План занятия• Общая информация о системах контроляверсий(СКВ)– Что такое СКВ и зачем они нужны– Стратегии совместного использования файлов– Типы СКВ и общие сведения о работе с СКВ• Введение в работу с СКВ GitОбщая информация о системахконтроля версийЧто такое система контроля версий• Специальноепрограммноеобеспечение длясовместной работы спостоянноизменяющейсяинформацией.• Надстройка надфайловой системой,которая позволяетхранить нескольковерсий одного и того жефайлаДля чего нужны системы контроляверсий• Хранение полной истории изменений• Описание причин всех производимых изменений• Отмена изменений, если что-то было сделано нетак• Поиск причин и ответственного за появлениеошибки в программе• Совместная работа нескольких разработчиков надодним проектом• Возможность вносить изменения, не мешая работыдругих разработчиковПроблема совместногоиспользования файловLock-Modify-UnlockLock-Modify-UnlockКлассификация систем контроля версий постратегии совместного использования файловLock-Modify-Unlock(TFS, VSS, VAULT)Гибридные(Subversion, AcccuRev,Perforse, ClearCase)Copy-Modify-Merge(CVS, Git, Mercurial,Bazaar)Централизованные системыконтроля версий• Единственное хранилище (репозиторий) дляхранения всех файлов проекта• Каждый пользователь копирует необходимыеему файлы из этого хранилища, изменяет и,затем, загружает измененные файлы обратнов хранилищеРаспределенные системы контроляверсий• У каждого пользователя свое хранилище(возможно, не одно)• Система обеспечивает возможность работы слюбыми хранилищами (локальными иудаленными)Классификация централизованных ираспределенных систем контроля версий• Централизованные системы контроля версий––––SubversionCVSTFS, VaultAccuRev• Распределенные системы контроля версий– Git– Mercurial– BazaarОсновы работы с системойконтроля версий GitОсобенности хранения файлов всистеме контроля версий GitОсобенности хранения файлов всистеме контроля версий GitОсобенности хранения файлов всистеме контроля версий GitПервоначальная настройка системыконтроля версий Git$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com$ git config --global core.editor emacs$ git config –listuser.name=John Doeuser.email=johndoe@example.comcolor.status=auto...$ git config user.nameJohn DoeДокументация по системе контроляверсий Git$ git help <verb>$ git <verb> --help$ man git-<verb>$ git help configСоздание хранилища (репозитория)в системе контроля версий Git• Создание нового хранилища$ git init$ git add *.c$ git add LISENCE$ git commit –m "initial commit"• Дублирование существующего хранилища$ git clone http://mks1.cmc.msu.ru/miklesh/318-sandbox.gitЖизненный цикл файлов в системеконтроля версий Git$ git status$ git status -s$ git commit$ git commit –m "Fix bug No.7"$ git commit –a –m "Added feature"$ git diff$ cat .gitignore$ git rm main.c$ git mv test1.c test2.cПросмотр истории изменений всистеме контроля версий Git• История commit-ов$ git log• Ограничение числа выводимых коммитов иподробная информация об изменениях$ git log –p -2$ git log --stat• Форматирование истории commit-ов$ git log --pretty\=format$ git log –pretty=format:"%h - %an, %ar : %s"$ git log –pretty=format:"%h %s" --graphОтмена изменений в системеконтроля версий Git• Обновление commit-ов$ git commit --amend• Удаление файлов из staging area$ git reset HEAD <file>• Отмена текущих изменений$ git checkout -- <file>Работа с удаленными хранилищамив системе контроля версий Git• Просмотр, удаление и добавлениеудаленных репозиториев$ git remote$ git remote –v$ git remote add [shortname] [url]• Синхронизация с удаленнымирепозиториями$$$$gitgitgitgitfetch [remote-name]pull [remote-name]push [remote-name] [branch-name]remote show [remote-name]Создание меток в системе контроляверсий Git• Просмотр меток$ git tag$ git tag –l ‘v11.8.5*’$ git show v1.4• Создание меток$ git tag –a v1.4 –m ‘my version 1.4’$ git tag v1.4-lw$ git tag –a v1.2 9fceb02• Загрузка меток из удаленного хранилища$ git push origin [tagname]$ git push origin –tags$ git remote show [remote-name]• Переход по меткам (checking out)$ git checkout –b [branchname] [tagname]Ветки проекта в системе контроляверсий GitВетки проекта в системе контроляверсий GitВетки проекта в системе контроляверсий GitВетки проекта в системе контроляверсий Git$git branch testingВетки проекта в системе контроляверсий Git$git log -–oneline -–decorateВетки ветками проекта в системеконтроля версий Git$git checkout testingВетки проекта в системе контроляверсий Git$git commit –a –m ‘made a change’Ветки проекта в системе контроляверсий Git$git checkout masterВетки проекта в системе контроляверсий Git$git commit –a –m ‘made other changes’$git log -–oneline -–decorate -–graph -–allРабота с ветками проекта в системеконтроля версий Git$git checkout –b iss53Работа с ветками проекта в системеконтроля версий Git$git branch iss53$git checkout iss53Работа с ветками проекта в системеконтроля версий Git$vim index.html$git commit –a –m ‘added a new footer [issue 53]’Работа с ветками проекта в системеконтроля версий Git$git$git$vim$gitcheckout mastercheckout –b hotfixindex.htmlcommit –a –m ‘fixed the broken email address’Работа с ветками проекта в системеконтроля версий Git$git checkout master$git merge hotfixРабота с ветками проекта в системеконтроля версий Git$git$git$vim$gitbranch –d hotfixcheckout iss53index.htmlcommit –a –m ‘finished the new footer [issue 53]’Работа с ветками проекта в системеконтроля версий Git$git checkout masterРабота с ветками проекта в системеконтроля версий Git$git merge iss53Работа с ветками в системе контроляверсий Git• Конфликты слияния$$$$$gitgitgitgitgitmerge iss53statusmergetoolstatuscommit.