GIT Slides (25.03.2015)
-
Upload
ilya-v -
Category
Technology
-
view
133 -
download
2
Transcript of GIT Slides (25.03.2015)
I. Общие сведения
II. Начало работы
III. Итоги первой лекции
Что такое GIT?История появленияСильные стороны
Инициализация репозитория (init / clone)Добавление файлов (add)Что такое ветки и для чего они? (branch / checkout)Фиксация изменений (commit)Отправка своей ветки на сервер (push)Слияние (merge)
Полезные ресурсыhttps://try.github.io/github.com
Вводная лекция по GIT
I. Общие сведения
II. Начало работы
III. Итоги первой лекции
Что такое GIT?История появленияСильные стороны
Инициализация репозитория (init / clone)Добавление файлов (add)Что такое ветки и для чего они? (branch / checkout)Фиксация изменений (commit)Отправка своей ветки на сервер (push)Слияние (merge)
Полезные ресурсыhttps://try.github.io/github.com
Вводная лекция по GIT
Что такое GIT?
Распределённая система управления версиями файлов
I. Общие сведения
II. Начало работы
III. Итоги первой лекции
Что такое GIT?История появленияСильные стороны
Инициализация репозитория (init / clone)Добавление файлов (add)Что такое ветки и для чего они? (branch / checkout)Фиксация изменений (commit)Отправка своей ветки на сервер (push)Слияние (merge)
Полезные ресурсыhttps://try.github.io/github.com
Вводная лекция по GIT
Инициализация репозитория (init / clone)
git init git init - эта команда инициализирует создание репозитория *
Репозиторий - это хранилище данных о проекте - история изменений, информация о ветках, владельце и т.д.
$ > mkdir my_super_project$ > cd my_super_project$ > git init$ > ls -a
Инициализация репозитория (init / clone)
git clone git clone - эта команда скопирует существующий репозиторий
$ > git clone http://dev.server.com/my_super_project.git$ > cd my_super_project$ > ls -a
Добавление файлов (add)
git add git add - добавляет файлы в индекс
Для git’а файлы делятся на две категории: те, которые он отслеживает и все остальные :)
Чтобы узнать какие файлы изменились, можно воспользоваться командой git status
git rm --cached удалит файлы из индекса, в отличие от обычной команды rm, которая удалит файлы физически.
.gitignore - внимание - спойлер!
.gitignore .gitignore - это не команда, а имя файла
Не всегда требуется учитывать изменения в файлах. Например, конфиги с паролями, логи, кеш -
все это не обязательно должно быть в индексе.
Возможное содержимое файла .gitignoredevelopment.logcache/*config/database.conf
Что такое ветки и для чего они? (branch / checkout)
Ветки позволяют разделять работу над проектом на независимые друг от друга участки.
Ветки принято создавать на каждую отдельную задачу: добавление функционала, изменение и т.д.
Веток внутри одного репозитория может быть столько, сколько потребуется.
Основными командами являются git branch и git checkout
Что такое ветки и для чего они? (branch / checkout)
git branch git branch - покажет ветки * проекта
Ветка - это просто легковесный подвижный указатель на один из коммитов.
Ветка по умолчанию в Git'е называется master.
Когда вы создаёте коммиты на начальном этапе, вам дана ветка master, указывающая на последний сделанный коммит.
При каждом новом коммите она сдвигается вперёд автоматически.
Что такое ветки и для чего они? (branch / checkout)
git branch git branch - покажет ветки * проекта
Ветка - это просто легковесный подвижный указатель на один из коммитов.
$ > mkdir my_super_project && cd my_super_project$ > git init$ > git branch
звездочкой отмечена текущая выбранная ветка
Что такое ветки и для чего они? (branch / checkout)
git branch git branch - покажет ветки * проекта
Ветка - это просто легковесный подвижный указатель на один из коммитов.
$ > git branch ИМЯ_ВЕТКИ
Если веток несколько, между ними можно переключаться указав нужное имя
Что такое ветки и для чего они? (branch / checkout)
git checkout git checkout - создаст новую ветку
$ > mkdir my_super_project && cd my_super_project$ > git checkout ИМЯ_НОВОЙ_ВЕТКИ
Фиксация изменений (commit)
git commit git commit - фиксация состояния файлов
Коммит - сохраняет состояние файлов в ветке.
$ > git status$ > git add ИМЕНА_ФАЙЛОВ$ > git commit -m ‘Поясняющее сообщение’
git commit -a - коммит с ключом -a это коммит+push
Фиксация изменений (commit)
Что еще следует знать про коммит?
Все, что является частью коммита в Git'е, почти всегда может быть восстановлено. Даже коммиты, которые
находятся на ветках, которые были удалены, и коммиты переписанные с помощью --amend могут
быть восстановлены
Отправка своей ветки на сервер (push)
git push git push - отправить ветку в репозиторий
Пуш отправляет указанную ветку во внешний репозиторий, который может находиться где угодно.
$ > git commit -m ‘Поясняющее сообщение’$ > git push origin ИМЯ_ВЕТКИ
origin - это адрес удаленного репозитория, куда будет отправлен push и с которого будет сделан pull
узнать эти значения можно при помощи команды git remote -v
Отправка своей ветки на сервер (remote)
git remote git remote - вернут названия настроенных удаленных репозиториев
Названий может быть несколько и для получения полной информации об адресах надо указывать ключ -v
$ > git remote -v$ > origin http://dev.server.com/my_super_project.git (fetch)$ > origin http://dev.server.com/my_super_project.git (push)
Дополнительная информация по команде remote
Можно добавить столько удаленных репозиториев, сколько необходимо для текущего проекта.
Делается это следующим образом:
$ > git remote add ilya.v http://ilya.server.ru/work_project.git$ > git remote -v$ > ilya.v http://ilya.server.ru/work_project.git (fetch)
$ > origin http://dev.server.com/my_super_project.git (fetch)$ > origin http://dev.server.com/my_super_project.git (push)
$ > ilya.v http://ilya.server.ru/work_project.git (push)
Слияние (merge)
git merge git merge - объединит указанные ветки
Главным образом merge используется для слияния различных веток с веткой master
$ > git checkout master$ > git merge ИМЯ_ВЕТКИ_КОТОРАЯ_БУДЕТ_СЛИТА_С_MASTER
Если в процессе слияния не возникнет конфликтов, то изменения из ветки попадут в master
Pull
git pull git pull - подтянет изменения из репозитория
pull рекомендуется выполнять всякий раз перед началом работы и перед отправкой своих наработок.
$ > git pull master$ > git fetch && git merge — это аналог команды git pull
Pull смотрит в ветку master основного репозитория
I. Общие сведения
II. Начало работы
III. Итоги первой лекции
Что такое GIT?История появленияСильные стороны
Инициализация репозитория (init / clone)Добавление файлов (add)Что такое ветки и для чего они? (branch / checkout)Фиксация изменений (commit)Отправка своей ветки на сервер (push)Слияние (merge)
Полезные ресурсыhttps://try.github.io/github.com
Вводная лекция по GIT
Полезные ресурсы
https://try.github.io/
github.com
http://git-scm.com/book/ru/v1
15 минут времени на вводный курс по git:
Годная книга по всем аспектам git:
Полигон для тренировок с мануалом и гистами:
gist.github.com