GIT
Що ми розберемо на уроці?
Теорія
Практика
Шпаргалка
Установка git в ubuntu:
Если у вас mac или windows, посмотрите как установить git здесь
Первоначальная настройка Git
Имя пользователя
Выбор редактора
Если вы хотите проверить используемые настройки, можете использовать команду
Git автоматически раскрасит большую часть своего вывода, если вы его об этом попросите.
Если вам нужна помощь при использовании Git’а, есть три способа открыть страницу руководства по любой команде Git’а:
Создание репозитория в существующем каталоге
Если вы собираетесь начать использовать Git для существующего проекта, то вам необходимо перейти в проектный каталог и в командной строке ввести
Если вы хотите добавить под версионный контроль существующие файлы (в отличие от пустого каталога), вам стоит проиндексировать эти файлы и осуществить первую фиксацию изменений. Осуществить это вы можете с помощью нескольких команд git add указывающих индексируемые файлы, а затем commit:
Клонирование репозитория осуществляется командой
Основной инструмент, используемый для определения, какие файлы в каком состоянии находятся — это команда
Зачастую, у вас имеется группа файлов, которые вы не только не хотите автоматически добавлять в репозиторий, но и видеть в списках неотслеживаемых. К таким файлам обычно относятся автоматически генерируемые файлы (различные логи, результаты сборки программ и т.п.). В таком случае, вы можете создать файл .gitignore с перечислением шаблонов соответствующих таким файлам.
Если результат работы команды git status недостаточно информативен для вас — вам хочется знать, что конкретно поменялось, а не только какие файлы были изменены — вы можете использовать команду
Удаление файлов Для того чтобы удалить файл из Git’а, вам необходимо удалить его из отслеживаемых файлов (точнее, удалить его из вашего индекса) а затем выполнить коммит. Это позволяет сделать команда
git rm также удаляет файл из вашего рабочего каталога, так что вы в следующий раз не увидите его как “неотслеживаемый”.
Просмотр истории коммитов После того как вы создадите несколько коммитов, или же вы склонируете репозиторий с уже существующей историей коммитов, вы, вероятно, захотите оглянуться назад и узнать, что же происходило с этим репозиторием. Наиболее простой и в то же время мощный инструмент для этого — команда
Зная идентификатор коммита можно посмотреть что было изменено в нем:
Идентификатор коммита можно сократить до 7 символов.
Изменение последнего коммита
Одна из типичных отмен происходит тогда, когда вы делаете коммит слишком рано, забыв добавить какие-то файлы, или напутали с комментарием к коммиту. Если вам хотелось бы сделать этот коммит ещё раз, вы можете выполнить commit с опцией –amend:
Все три команды вместе дают один коммит — второй коммит заменяет результат первого.
Можно использовать **git reset HEAD <файл>...** для исключения из индекса.файл>
Когда вы хотите поделиться своими наработками, вам необходимо отправить (push) их в главный репозиторий. Команда для этого действия простая: git push [удал. сервер] [ветка].
Псевдонимы в Git
Git не будет пытаться сделать вывод о том, какую команду вы хотели ввести, если вы ввели её не полностью. Если вы не хотите печатать каждую команду для Git’а целиком, вы легко можете настроить псевдонимы (alias) для любой команды с помощью git config. Вот несколько примеров псевдонимов, которые вы, возможно, захотите задать:
Мы научились добавлять файлы в индекс, но что делать если мы наоборот хотим их удалить из него? Для этого нам помогут две команды: reset и checkout.
Хорошая практика с git подразумевает отсутствие мерж коммитов при скачивании изменений в локальный репозиторий, поэтому использовать git pull
не рекомендуется. Чтобы история была прямой, нужно использовать rebase
, например, так
Ветвление в Git
git status и git branch сообщат нам в какой ветке мы находимся. Создание новой ветки и переключение на нее осуществляется так:
С помощью git checkout мы можем переключаться между ветками и коммитами.
Слияние веток осуществляется командой git merge. Команда git merge выполняется из той ветки, в которую мы сливаем изменения, а аргументом передается имя той ветки, которую мы сливаем.
Полезные ссылки
- Курс от хекслета - системы контроля версий (GIT)
- Книга Pro Git, авторы Scott Chacon и Ben Straub
- Туториал от Гитхаба
- Learn Git Branching
- GUI Clients
- Flight rules for git
- Как склеить коммиты и зачем это нужно
- How to use Tig to browse Git logs
- Keep your commits “atomic”
- Gitflow Workflow