Upload
slava-semushin
View
2.506
Download
2
Embed Size (px)
Citation preview
Git для опытных пользователей
Слава Семушин,web-разработчик в Новосибирске
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Содержание
Настройка под себя
Игнорирование файлов
Редактирование и отмена коммитов
Разрешение конфликтов
Использование git stash
Использование хуков (hooks)
Полезные ссылки
Вопросы
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Настраиваем под себя
Где находится конфиг .git/config ~/.gitconfig
Как его изменить git config git config –global в редакторе
Как посмотреть настройки git config –list
Где почитать man git-config
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Настраиваем под себя
Личная информация git config --global user.name "Slava Semushin" git config --global user.email "[email protected]" git config --global core.editor vim
Выделение цветом git config --global color.branch auto git config --global color.diff auto git config --global color.status auto
Псевдонимы (aliases) git config --global alias.stat status git config --global alias.switch checkout git config --global alias.pick cherry-pick
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Игнорирование файлов
.gitignore рекурсивен поддерживает простейшие регулярные выражения
Узнать больше можно в man gitignore
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Изменение коммитов
Исправляем описание git commit --amend
Откатываем коммит, но оставляем изменения git reset --soft HEAD^
Откатываем коммит полностью git reset --hard HEAD^
Откатываем «правильно» git revert HEAD^
Ещё множество возможностей даёт git rebase
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Как выглядит конфликт
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Как разрешается конфликт
Правим файл
Сообщаем о том, что конфликт исчерпан git add
Коммитим git commit
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Как принять одну из сторон во время конфликта
Диспозиция git status git diff –merge
Наша сторона (бранч в который мержим) git diff --ours git checkount --ours file
Другая сторона (бранч который мержим) git diff --theirs git checkout --theirs file
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Как автоматизировать разрешение конфликта
Активировать git rerere (REuse REcorded REsolution) git config --global rerere.enabled 1
«Словить» конфликт
Разрешить его как обычно
Вдобавок есть git rerere status git rerere diff
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Прячем незакоммиченые изменения
Сохранить git stash save
Получить список сохранённых git stash list
Применить последний git stash pop
Ещё больше инфы в man git-stash
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Работа с хуками
Где .git/hooks/
Для чего рассылка оповещений проверка коммитов
Как использовать скопировать поправить сделать исполняемым (chmod +x)
Множество подробностей есть в man githooks
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
По заявкам радиослушателей
Проблема с правами при push-е umask
Обновление настроек после изменения remote git config remote.origin.url <new-url> Git Magick, “Приносим извинения, мы переехали”
Мульти push http://stackoverflow.com/questions/5620525/git-pushing-to
-two-repos-in-one-command
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Ссылки
Про git rebase (и не только) http://kb.etersoft.ru/Работа_с_git
Как использовать git rerere http://progit.org/2010/03/08/rerere.html
Удачная модель ветвления http://habrahabr.ru/blogs/Git/106912/
Интерактивная шпаргалка с командами http://www.ndpsoftware.com/git-cheatsheet.html
SOFTWARE ● SERVICES ● EDUCATION ● CLOUDРоссия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия
Ещё вопросы?