Git — распределённая система контроля версий: базовые настройка
Привет. Что же такое Git? Система, которая помогает работать совместно над одним проектом, контроль версий. Когда, в какой момент времени, какой разработчик те или иные изменения.
Во общем крутая штука, для начинающих и профессиональных программистов. Все мы совершаем ошибки и в коде тоже, так вот гит может помочь произвести откат до работоспособной версии и помочь найти ошибки в коде путем сравнения.
Установка Git
Нам понадобится сам гит, его можно скачать на официально сайте. А также нам понадобится гуй Git Kraken — она бесплатная и поддерживается любой ОС.
Качаем гит, кракена и устанавливаем, в той же последовательности.
Все, жмем next и ждем окончания установки. Запускаем и убеждаемся, что все работает.
Теперь перейдем к установке кракена. Жмем на установщик, погнали. Заметили, как быстро установился =) Все регистрируйтесь в гите если у вас нет там еще аккаунта.
Настройка
Полезные ссылки:
- Введение – Установка Git
- Введение – Первоначальная настройка Git
- Команды Git – Настройка и конфигурация
- Настройка Git – Конфигурация Git
После установки нужно выполнить эти команды:
git config --global user.name "[name]" git config --global user.email "[email address]" git config --global color.ui.auto git config --global core.editor "[program]"
Первая команда устанавливает логин, который будет записываться за каждым изменение в будущих проектах. Это нужно, чтобы другие разработчики видели, кто сделал изменения и в какой момент времени.
Вторая команда устанавливает ваше мыло для связи, чтобы другие разработчики могли с вами связаться.
Третья команда включает подсветку при использовании терминала.
Четвертая команда, это установка редактора по умолчанию.
git config --list
Эта команда показывает список конфигураций, все что вы водили выше, должно отобразиться.
Основные команды
- ls – показать список файлов, в текущей активной директории.
- cd – переход в другую папку.
- cd .. – перейти в папку выше текущей. (,,/,,)
- mkdir – создает папку.
- touch – создать файл.
- cp [что][куда] – скопировать файл.
- mv [что][во что] – переименовать файл.
- echo “записываем команду или что-то еще в файл” > /c:/www/index.html – запись в файл.
- cat – посмотреть содержимое файла.
- rm – удалить файл.
- rm -R – удалить директорию и все что внутри.
Репозиторий
Репозиторий — хранилище файлов, ваш программный код. Хранит полноценные слепки всех ваших изменений, какой фаил был изменен, в какой момент они были сделаны и кем они были сделаны.
Существует два 2 типа репозиториев:
- локальный (local),
- удаленный (remote).
Создаем локальный репозиторий
Создаем локальный репозиторий на рабочем столе. Открываем Git Bash.
cd Desktop mkdir Repo cd Repo git init //создаем репозиторий ls -a //показ скрытых папок git status //текущие состояние репозитория
Настройка кракена
Теперь создаем репозиторий через кракена. Ну, собственно и выбирайте, что вам удобнее будет. Водим логин и пароль от гита в кракене, жмем на кнопку вверху гита, открывается сайт, разрешаем доступ, едем дальше. Выбирайте аватар и заполняйте профиль.
Локальный репозиторий с помощью кракена
Жмем «Start a local repo», вводим название, выбираем каталог где будет наш локальный репозиторий и жмем зеленую кнопку.
Создаем репозиторий в самом GitHabe
Там все просто, если возникли трудности, смотрите на скриншоты и тыкайте тоже самое.
Так теперь нужно связать наш локальный репозиторий с гитом. Чтобы данные автоматически синхронизировались.
cd папка локального репозитория git remote add origin [ссылка вашего репозитория на гитхабе] git remote -v
Смотрите на скриншот ниже, если не знаете где брать ссылку.
Выше делали, с помощью командной строки, теперь с помощью кракена.
Можно просто нажать на иконку гитхаба и там по идеи он сам подхватит ваш удаленный репозиторий. Но так бывает не всегда, по этому я предпочитаю просто указывать ссылку на репу.
Коммиты
Как фиксировать репозитории и управлять нашими файлами. Погнали. Создайте файл в своем локальном репозитории, через консоль и обычными средствами виндовс. Зайдите в консоль и зайдите в свою локальную папку репозитория.
cd [путь к вашему локальному репозиторию] git status //видим название файла с красным начертанием git add [название файла] git status //файл стал светиться зеленым git commit //это будет сообщение к прикреплённому файлу, т.е. это и есть коммит //выйти из редактора :wq w - запись q - выйти git status //вы ничего не увидите, значит все сделано правильно
Пустые папки
Гит не будет заносить пустые папки в ваш удаленный репозиторий, чтобы его заставить это сделать, то нужно добавить в корень этой папки файл «.gitkeep».
Скрываем файлы
Допустим вам нужно скрыть файл в котором прописаны доступы для подключения к бд.
cd [ваш репозиторий] touch .gitignore //создаем файл git status git add .gitignore git status echo "connection.php" .gitignore //добавляем название файлов в гитигнор cat .gitignore //смотрим на содержимое гитигнора git status //видим красные файл .gitignore git commit -am 'ignore set up' //сокращённая версия добавления коммита
Создайте файл connection.php и запустите команду git status, чтобы убедиться, что ничего не появилось.
Теперь проделаем все то же самое, но с кракеном. Открываем кракена. Заходим в свой репозиторий.
Создаем новый файл, нажмите ПКМ в поле как показано на скрншоте.
Сверху появится поле в которое необходимо ввести название файла. После чего жмем ентер и откроется редактор этого файла. Внесите изменения в этот файл и сохраните его.
Дальше вносим описание коммита и жмем добавить.
Удобненько, да, с кракеном? =)
Единственный косяк, приватные репы платные через него. Дается 7 дней триала. А публичные можно использовать без ограничений.
История
Разбираем как работать с историей, как с ней работать и перемещаться внутри неё, до или после текущего коммита.
git log // получаем историю о каждом изменении git log --oneline //сокращенный вид
Все мы люди и нам свойственно ошибаться. Допустим вы создали ошибочный коммит, и вы хотите его удалить.
git reset [хеш коммита] //хеш коммита - это цифры с лева, если ввести git log --oneline
Но, это не значит, то что вы его удалили навсегда =)
git reflog
Его можно восстановить если выполнить предыдущею команду (git reset).
Отменить действие коммита
Эта команда не удаляет коммит, а просто отменяет его действие. Допустим вы добавили таки файл с подключение бд в общий доступ и опомнились…
git revert [хеш комита] //оменяет действие комита
Теперь все то же самое, но через кракен.
Выбираем тот комит, что нам нужен и совершаем над ним определённые действия.
Работа с ветками репозитория
Ветки, как правило, нужны, когда вы участвуете в большом проекте, чтобы ваш код не пересекался с другими.
git branch //все достпные ветки git branch dev // создаем новую ветку git checkout dev //переключаемся на новую ветку dev
Все, теперь вы создаете файлы и работаете с ними в ветки dev. Основная ветка master ничего не знает о ветки dev. т.е. можно разрабатывать параллельно два блока в одном файле с другим разработчиком. Ну, понятное, дело, что не один и тот же блок =)
Ваши файлы изолированы от ветки master, помните про это.
Ветвление веток
Вам понадобилось создать ветку и вы хотите, что она взяла свое начало от ветки master.
git branch dev-test master
Если ввести –oneline, то вы увидите, что присутствуют коммиты главной ветки master.
Теперь все то же самое в кракене.
А так можно переключатся между ветками.
git checkout master
Публикация в ГИТ
Загрузка на гитхаб и обновление версий.
Вы работаете с другом над одним проектом, у каждого из вас есть локальная копия у себя на компьютере, т.е. локальный репозиторий. Вы создали новую ветку и приступили к разработке какого-то блока, закончили. Теперь настало время поделится этим блоком, и чтобы у вашего друга этот блок тоже появился.
Настройка SSH
Это необходимо для синхронизации вашего локального репозитория с гитхабом.
ssh-keygen //создаем ключ
Путь где будет лежать ваш файл, жмем интер.
Дальше идет кодовая фраза, она не обязательна, так что просто жмем ентер.
Если указали кодовую фразу, то повторите её, если нет, то просто ентер. Дальше переходим на сайт гитхаб в настройки своего профиля, а там в SSH keys. Жмем new ssh key. Указываем любое название, в поле key вставляем содержимое сгенерированного ключа. Просто откройте сгенерированный файл в блокноте «id_rsa.pub». Жмем сохранить естественно, подтверждаем пароль от гита.
Заходим в свой репозиторий на гитхабе и жмем ssh.
Теперь переходим в консоль.
git clone [ссылка, что скопировали в хабе] [путь до вашего репозитория на вашем компьютере]
Все, мы взяли репозиторий из гитхаба и перенесли его себе на компьютер.
Добавили в проект новый файл index.html и перенесем его на гитхаб. Создать файл можно обычными средствами виндовс. Дальше через консоль, добавляем его на гитхаб.
//переходим в папку локального репозитория git add index.html git status //проверяем git commit -m 'add index.html' git status //проверяем git push //переносим на гитхаб
Проверяем визуально на гитхабе.
Загружаем из Гитхаба себе на локальный репозиторий
git pull //загрузить себе на компьютер с гита
А теперь все то же самое на кракене.
Открываем кракен и следуем инструкция на скриншоте.
Добавление фалов и скачивание осуществляется с помощью кнопок.
git fetch //подгрузить обновления
Слияние веток
Подошло время вам с другом объединить, все что вы навояли, путем слияния веток в одну.
git branch //смотрим какие ветки есть git merge [название ветки] // сольет эту ветку с основной веткой
Если видите сообщение «Already up to date», это значит, что в этой ветки нет изменений с последнего слияния.
Чтобы увидеть изменения в удалённом репозитории по слиянию, необходимо выполнить команду:
git push //загрузить все изменения на сервер
Удаляем не актуальные ветки:
git branch -d [ветка1 ветка2]
Но таким образом вы удаляете ветки только с локального репозитория. Чтобы удалить эти ветки с удалённо репозитория, нужно:
git push --delete origin [ветка1 ветка2]
В кракене делается все точно также, только мышкой. Я думаю разберетесь.
Смена версий
git tag 1.0.0 git tag //просмотреть версии git tag --list //аналогично git push --tags //загрузить версию на удаленый сервер git tag -d 1.0.0 //удалить тег локально git push --delete origin 1.0.0 //удалить тег с удаленного репозитория
Теперь через кракен. Добавляем тег. Выбираем нужный комит. Дальше смотрите на скриншоты и выполняйте теже действия.
Загружаем тег на сервер.
Создание pull-request
Это нужно для свместного обсуждения кода.
И тоже самое в кракене.
Создаем коммит, загружаем на сервер, дальше появится в меню в следующий пункт.
Заполняем поля и жмем зеленую кнопку =)
На этом пока поставлю точку. Понятное дело, что все охватить за раз не получится. Я буду дополнять эту статью, т.к. сам пользуюсь гитом и иногда забываешь что-то если не часто этим пользуешься. Всем удачи и хорошег кодинга.
Чеклист
Создаем локальный репозиторий:
cd [папка] git init //создаем репозиторий
Создаем удаленый репозиторий:
- Заходим на гит и ручками создаем
Cвзяваем репозитории:
cd [папка локального репозитория] git remote add origin [ссылка вашего репозитория на гитхабе]
Заливаем в гит все из локально репозитория:
git commit -m ' ' //комент git add . //добавить все git push -u origin master //переносим на гитхаб
Тег – версия (опционально):
git tag 1.0.0 git push --tags
Создаем pull-request:
git checkout -b dispute //создаем новую ветку echoc '' > file.text //фаил бсуждения git add . git commit -m '' git push -u irigin disputeПредыдущая