Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
GITСистема контроля версий
Вспомним
1. Git - распределенная СКВ
2. Запись в репозиторий - commit
3. Синхронизация удаленного и локального
репозиторие...
Git репозиторий - всего
лишь директория .git
Удалить репозиторий -
удалить
директорию .git
Бэкап -
копирование .git
Анонс
1. Staging
2. Работа с коммитами
3. Ветки
4. Слияние веток
5. Stashing
6. Изменение истории
7. Решение конфликов
STAGINGЖизнь до коммита
Staging
1. Что добавлено в staging (git add), то будет
закоммичено (git commit)
2. git reset HEAD <file> - убрать файл из
...
Staging Advanced
1. git diff --staged - изменения, которые
пойдут в коммит
2. git reset --hard - переходим на коммит,
изме...
Работа с коммитами
Забыли закоммитить?
git commit --amend
добавить к предыдущему
коммиту
Важно знать
1. Все, что было закоммичено, не потеряется
2. Атомарность коммита - это образ жизни
3. Комментарии к коммиту ...
ВЕТКИBranches
Правила ветвления
1. Одна ветка - одна фича/багфикс (если не влазит в
один коммит)
2. master всегда есть и в master всегда...
Управление бранчами
1. git checkout -b <name> - создать новый
бранч и переключиться на него
2. git branch -d <name> - удал...
СЛИЯНИЕветок
Notes
1. Merge - это не боль
2. Rebase - это еще больше не боль
3. Чаще мерджим (ребэйсим) - легче жить
4. Важно не забыва...
merge или rebase
1. merge создает дополнительный merge-коммит
слияния
2. rebase делает историю "плоской", как будто
коммит...
Как работает rebase
1. Переносит все коммиты из master, которых нет в
origin/master в temp
2. Выстраивает последовательно ...
Например, есть бранч admin и бранч master
1. Переключается на admin
2. git rebase master - добавляем коммиты из
master в a...
Например, несколько людей работали над одним
бранчем
1. git fetch - синхронизируем репозиторий
2. git rebase - начинаем re...
Интерактивный rebase
git rebase -i HEAD~3 - rebase над 3 последними коммитами
1. Интерактивный rebase открывает rebase скр...
Зачем?
1. Менять коммиты местами (перестановка pick
строк в скрипте)
2. Изменять комментарии к коммитам (edit)
3. Разбиват...
STASH
Git stash - место, куда временно можно положить
изменения, чтобы в будущем их применить.
— git stash list - посмотреть вес...
Изменение истории
1. Очень опасно
2. Иногда необходимо
3. Перед изменением истории всегда делать бекап
Фильтрация бранчей
1. git filter-branch --tree-filter 'rm -f
test.txt' - перезапустит все коммиты,
выполняя команду для tr...
Решение конфликтов
1. Используйте тулы вашей IDE: Xcode, IDEA - они
умеют 3-way merge делать
2. Хотя бы настройте стандартный для OSX
FileMer...
После rebase не пушится
git push --force origin
master
Очень редко, но можно сделать принудительный
пуш, если уверены, что...
Git - распределенная система контроля версий
Git - распределенная система контроля версий
Nächste SlideShare
Wird geladen in …5
×

von

Git - распределенная система контроля версий Slide 1 Git - распределенная система контроля версий Slide 2 Git - распределенная система контроля версий Slide 3 Git - распределенная система контроля версий Slide 4 Git - распределенная система контроля версий Slide 5 Git - распределенная система контроля версий Slide 6 Git - распределенная система контроля версий Slide 7 Git - распределенная система контроля версий Slide 8 Git - распределенная система контроля версий Slide 9 Git - распределенная система контроля версий Slide 10 Git - распределенная система контроля версий Slide 11 Git - распределенная система контроля версий Slide 12 Git - распределенная система контроля версий Slide 13 Git - распределенная система контроля версий Slide 14 Git - распределенная система контроля версий Slide 15 Git - распределенная система контроля версий Slide 16 Git - распределенная система контроля версий Slide 17 Git - распределенная система контроля версий Slide 18 Git - распределенная система контроля версий Slide 19 Git - распределенная система контроля версий Slide 20 Git - распределенная система контроля версий Slide 21 Git - распределенная система контроля версий Slide 22 Git - распределенная система контроля версий Slide 23 Git - распределенная система контроля версий Slide 24 Git - распределенная система контроля версий Slide 25 Git - распределенная система контроля версий Slide 26 Git - распределенная система контроля версий Slide 27 Git - распределенная система контроля версий Slide 28 Git - распределенная система контроля версий Slide 29 Git - распределенная система контроля версий Slide 30
Nächste SlideShare
Absolute Simplicity: Interior Decorating
Weiter
Herunterladen, um offline zu lesen und im Vollbildmodus anzuzeigen.

1 Gefällt mir

Teilen

Herunterladen, um offline zu lesen

Git - распределенная система контроля версий

Herunterladen, um offline zu lesen

Git - распределенная система контроля версий.
Tips&tricks.

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Git - распределенная система контроля версий

  1. 1. GITСистема контроля версий
  2. 2. Вспомним 1. Git - распределенная СКВ 2. Запись в репозиторий - commit 3. Синхронизация удаленного и локального репозиториев - push, pull, fetch
  3. 3. Git репозиторий - всего лишь директория .git Удалить репозиторий - удалить директорию .git Бэкап - копирование .git
  4. 4. Анонс 1. Staging 2. Работа с коммитами 3. Ветки 4. Слияние веток 5. Stashing 6. Изменение истории 7. Решение конфликов
  5. 5. STAGINGЖизнь до коммита
  6. 6. Staging 1. Что добавлено в staging (git add), то будет закоммичено (git commit) 2. git reset HEAD <file> - убрать файл из staging area 3. git checkout -- <file> - вернуть файл к начальному состоянию (то, что сейчас в HEAD)
  7. 7. Staging Advanced 1. git diff --staged - изменения, которые пойдут в коммит 2. git reset --hard - переходим на коммит, изменения пропадут 3. git reset --soft - переходим на коммит, изменения добавятся в staging
  8. 8. Работа с коммитами
  9. 9. Забыли закоммитить? git commit --amend добавить к предыдущему коммиту
  10. 10. Важно знать 1. Все, что было закоммичено, не потеряется 2. Атомарность коммита - это образ жизни 3. Комментарии к коммиту обязательны
  11. 11. ВЕТКИBranches
  12. 12. Правила ветвления 1. Одна ветка - одна фича/багфикс (если не влазит в один коммит) 2. master всегда есть и в master всегда stable код 3. В dev ветке идет разработка (периодически в нее сливаются фичер-ветки) 4. dev периодически вливается в мастер, после код- ревью
  13. 13. Управление бранчами 1. git checkout -b <name> - создать новый бранч и переключиться на него 2. git branch -d <name> - удалить бранч (-D - силой) 3. git push origin :<name> - удалить remote бранч 4. git remote show origin - посмотреть бранчи на remote
  14. 14. СЛИЯНИЕветок
  15. 15. Notes 1. Merge - это не боль 2. Rebase - это еще больше не боль 3. Чаще мерджим (ребэйсим) - легче жить 4. Важно не забывать переключаться между бранчами
  16. 16. merge или rebase 1. merge создает дополнительный merge-коммит слияния 2. rebase делает историю "плоской", как будто коммиты были всегда в одном бранче
  17. 17. Как работает rebase 1. Переносит все коммиты из master, которых нет в origin/master в temp 2. Выстраивает последовательно все коммиты, которые в origin/master, в локальном master 3. За этими коммитами выстраивает те, которые в temp
  18. 18. Например, есть бранч admin и бранч master 1. Переключается на admin 2. git rebase master - добавляем коммиты из master в admin 3. Переключаемся на master - git checkout master 4. git merge admin - не будет мердж коммитов, т.к. это простой fast-forward
  19. 19. Например, несколько людей работали над одним бранчем 1. git fetch - синхронизируем репозиторий 2. git rebase - начинаем rebase 3. Разруливаем конфликты, делаем git add на файлы, в которых разрулили 4. git rebase --continue - завершаем rebase В итоге никаких merge коммитов
  20. 20. Интерактивный rebase git rebase -i HEAD~3 - rebase над 3 последними коммитами 1. Интерактивный rebase открывает rebase скрипт 2. Все коммиты, указанные в команде перемещаются в temp 3. На коммиты в temp применяется rebase скрипт
  21. 21. Зачем? 1. Менять коммиты местами (перестановка pick строк в скрипте) 2. Изменять комментарии к коммитам (edit) 3. Разбивать коммиты на несколько (edit) 4. Объединять коммиты в один (squash)
  22. 22. STASH
  23. 23. Git stash - место, куда временно можно положить изменения, чтобы в будущем их применить. — git stash list - посмотреть весь стек стеша — git stash - сохранить в стеш — git stash pop - применить изменения из стеша — git stash --keep-index - все, кроме staging — git stash --include-untracked — git stash <branch> <stash> - создать из стеша новый бранч
  24. 24. Изменение истории 1. Очень опасно 2. Иногда необходимо 3. Перед изменением истории всегда делать бекап
  25. 25. Фильтрация бранчей 1. git filter-branch --tree-filter 'rm -f test.txt' - перезапустит все коммиты, выполняя команду для tree-filter 2. git filter-branch --index-filter 'git rm --cached --ignore-unmatch test.txt' - работает только со staging - быстрее, но надо пользоваться в качестве команд гитовыми командами
  26. 26. Решение конфликтов
  27. 27. 1. Используйте тулы вашей IDE: Xcode, IDEA - они умеют 3-way merge делать 2. Хотя бы настройте стандартный для OSX FileMerge в качестве mergetool (difftool) 3. Если же нет, то результат diff - сверху то, что было, снизу то, что приехало (с чем мерджим)
  28. 28. После rebase не пушится git push --force origin master Очень редко, но можно сделать принудительный пуш, если уверены, что не надо мерджить
  • morozovevm

    Mar. 12, 2015

Git - распределенная система контроля версий. Tips&tricks.

Aufrufe

Aufrufe insgesamt

986

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

5

Befehle

Downloads

14

Geteilt

0

Kommentare

0

Likes

1

×