- научимся создавать ветки
- научимся откладывать изменения до лучших времен
- поговорим о каноничном workflow
- немного tips&tricks
git checkout -b develop
- создать новую веткуdevelop
и переключиться на нееgit branch
- показать все веткиgit checkout master
- переключиться на главную веткуgit merge <branch>
- слить текущую ветку с веткой<branch>
git branch -d <branch>
- удалить ветку-D
- принудительно удалить веткуgit merge <branch> --squash
- при слиянии веток собрать несколько коммитов в один
git checkout -b develop
и посмотрим, какие ветки у нас теперь есть:
git branch
например, поменяем файл hello.txt
и закоммитим его новое состояние
переключившись в ветку master
, выполним:
git merge develop
Разница между git merge --no-ff
и git merge
git stash
- спрятать свои правкиgit stash apply
- применить изменения к текущей версииgit stash list
- вывести список измененийgit stash show
- вывести последние измененияgit stash drop
- удалить последние изменения в спискеgit stash pop
- [apply
] + [drop
]git stash clear
- очистить список изменений
допустим, в главном репозитории полным ходом идет разработка
мы, в свою очередь, тоже не отстаем и изо всех сил вносим изменения
в таком случае, при попытке получить актуальную версию кода, Git одарит нас ошибкой:
git stash
git pull
git stash pop
для этого можно использовать редактор/IDE/специальные программы для решения конфликтов, аля Meld
git checkout -b my_feature develop
если в программе обнаруживается неисправность, требующая срочных исправлений - создается ветка hotfix
от master
, которая потом сливается и с master
, и с develop
git checkout -b hotfix master
git checkout master
git merge --no-ff hotfix
git branch -d hotfix
ТЭГ == Релиз, используется для фиксирования версий вашего ПО
git tag <name>
- создать тэг (например, v1.3.1)git push --tags
- залить все тэги в репозиторийgit push <tag>
- залить конкретный тэг в репозиторий
Номер версии в формате MAJOR.MINOR.PATCH задается следующим образом:
- MAJOR версия - увеличивается, когда сделаны обратно несовместимые изменения API (крупные релизы)
- MINOR версия - увеличивается, когда добавляется новый функционал, не нарушающий обратной совместимости (новые фичи)
- PATCH версия - увеличивается, когда вы делаете обратно совместимые исправления (исправления, фиксы)
- если допущена ошибка при создании коммита (не те файлы, не тот комментарий), её можно откатить
git reset --soft HEAD^
- если нужно посмотреть содержимое другой ветки, а в текущей есть файлы, еще не добавленные в Index:
git stash save --include-untracked
- если отредактировано много файлов и добавлять сразу все НЕ хочется, то можно использовать
git add -i
- файл
.gitignore
содержит описание файлов, которые git не будет отслеживать- например, если мы не хотим, чтобы в репозитории хранилась папка
.idea
и все файлы форматаdll
, то пишем:.idea/
*.dll
- например, если мы не хотим, чтобы в репозитории хранилась папка
git log
- посмотреть историю коммитов в проекте
git lg
- один из альтернативных вариантов истории коммитов, более наглядный для его использования надо создать алиас:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset' --abbrev-commit"
-
использование GUI клиентов
¯\_(ツ)_/¯
-
использование GUI клиентов
¯\_(ツ)_/¯
-
использование GUI клиентов
¯\_(ツ)_/¯
создать в своем форке репозитория myfirstproject новую ветку, накуролесить в ней, слить с главной и отправить Pull Request
Git
Ветвление
Заначка
Воркфлоу и версии
Данную лекцию подготовил Тимур Майзенберг