Git — распределённая система контроля версий: базовые настройка

Привет. Что же такое Git? Система, которая помогает работать совместно над одним проектом, контроль версий. Когда, в какой момент времени, какой разработчик те или иные изменения.

Git — распределённая система контроля версий: базовые настройка
Несколько разработчиков работают над одним проектом

Во общем крутая штука, для начинающих и профессиональных программистов. Все мы совершаем ошибки и в коде тоже, так вот гит может помочь произвести откат до работоспособной версии и помочь найти ошибки в коде путем сравнения.

Contents

Установка Git

Нам понадобится сам гит, его можно скачать на официально сайте. А также нам понадобится гуй Git Kraken — она бесплатная и поддерживается любой ОС.

Полная документация по Git на русском языке.

Качаем гит, кракена и устанавливаем, в той же последовательности.

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Все, жмем next и ждем окончания установки. Запускаем и убеждаемся, что все работает.

Git — распределённая система контроля версий: базовые настройка

Теперь перейдем к установке кракена. Жмем на установщик, погнали. Заметили, как быстро установился =) Все регистрируйтесь в гите если у вас нет там еще аккаунта.

Настройка

Полезные ссылки:

  1. Введение – Установка Git
  2. Введение – Первоначальная настройка Git
  3. Команды Git – Настройка и конфигурация
  4. Настройка 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

Эта команда показывает список конфигураций, все что вы водили выше, должно отобразиться.

Основные команды

  1. ls – показать список файлов, в текущей активной директории.
  2. cd – переход в другую папку.
  3. cd .. – перейти в папку выше текущей. (,,/,,)
  4. mkdir – создает папку.
  5. touch – создать файл.
  6. cp [что][куда] – скопировать файл.
  7. mv [что][во что] – переименовать файл.
  8. echo “записываем команду или что-то еще в файл” > /c:/www/index.html – запись в файл.
  9. cat – посмотреть содержимое файла.
  10. rm – удалить файл.
  11. rm -R – удалить директорию и все что внутри.

Репозиторий

Репозиторий — хранилище файлов, ваш программный код. Хранит полноценные слепки всех ваших изменений, какой фаил был изменен, в какой момент они были сделаны и кем они были сделаны.

Существует два 2 типа репозиториев:

  1. локальный (local),
  2. удаленный (remote).

Создаем локальный репозиторий

Создаем локальный репозиторий на рабочем столе. Открываем Git Bash.

cd Desktop
mkdir Repo
cd Repo
git init //создаем репозиторий
ls -a //показ скрытых папок
git status //текущие состояние репозитория

Настройка кракена

Теперь создаем репозиторий через кракена. Ну, собственно и выбирайте, что вам удобнее будет. Водим логин и пароль от гита в кракене, жмем на кнопку вверху гита, открывается сайт, разрешаем доступ, едем дальше.  Выбирайте аватар и заполняйте профиль.

Git — распределённая система контроля версий: базовые настройка
Not now, thanks.

Локальный репозиторий с помощью кракена

Жмем «Start a local repo», вводим название, выбираем каталог где будет наш локальный репозиторий и жмем зеленую кнопку.

Создаем репозиторий в самом GitHabe

Там все просто, если возникли трудности, смотрите на скриншоты и тыкайте тоже самое.

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Так теперь нужно связать наш локальный репозиторий с гитом. Чтобы данные автоматически синхронизировались.

cd папка локального репозитория
git remote add origin [ссылка вашего репозитория на гитхабе]
git remote -v

Смотрите на скриншот ниже, если не знаете где брать ссылку.

Git — распределённая система контроля версий: базовые настройка

Выше делали, с помощью командной строки, теперь с помощью кракена.

Git — распределённая система контроля версий: базовые настройка

Можно просто нажать на иконку гитхаба и там по идеи он сам подхватит ваш удаленный репозиторий. Но так бывает не всегда, по этому я предпочитаю просто указывать ссылку на репу.

Коммиты

Как фиксировать репозитории и управлять нашими файлами. Погнали. Создайте файл в своем локальном репозитории, через консоль и обычными средствами виндовс. Зайдите в консоль и зайдите в свою локальную папку репозитория.

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, чтобы убедиться, что ничего не появилось.

Теперь проделаем все то же самое, но с кракеном. Открываем кракена. Заходим  в свой репозиторий.

Git — распределённая система контроля версий: базовые настройка

Создаем новый файл, нажмите ПКМ в поле как показано на скрншоте.

Git — распределённая система контроля версий: базовые настройка

Сверху появится поле в которое необходимо ввести название файла. После чего жмем ентер и откроется редактор этого файла. Внесите изменения в этот файл и сохраните его.

Git — распределённая система контроля версий: базовые настройка

Дальше вносим описание коммита и жмем добавить.

Git — распределённая система контроля версий: базовые настройка

Удобненько, да, с кракеном? =)

Единственный косяк, приватные репы платные через него. Дается 7 дней триала. А публичные можно использовать без ограничений.

История

Разбираем как работать с историей, как с ней работать и перемещаться внутри неё, до или после текущего коммита.

git log // получаем историю о каждом изменении
git log --oneline //сокращенный вид

Все мы люди и нам свойственно ошибаться. Допустим вы создали ошибочный коммит, и вы хотите его удалить.

git reset [хеш коммита] //хеш коммита - это цифры с лева, если ввести git log --oneline

Но, это не значит, то что вы его удалили навсегда =)

git reflog

Его можно восстановить если выполнить предыдущею команду (git reset).

Отменить действие коммита

Эта команда не удаляет коммит, а просто отменяет его действие. Допустим вы добавили таки файл с подключение бд в общий доступ и опомнились…

git revert [хеш комита] //оменяет действие комита

Теперь все то же самое, но через кракен.

Git — распределённая система контроля версий: базовые настройка

Выбираем тот комит, что нам нужен и совершаем над ним определённые действия.

Git — распределённая система контроля версий: базовые настройка

Работа с ветками репозитория

Ветки, как правило, нужны, когда вы участвуете в большом проекте, чтобы ваш код не пересекался с другими.

git branch //все достпные ветки
git branch dev // создаем новую ветку
git checkout dev //переключаемся на новую ветку dev

Все, теперь вы создаете файлы и работаете с ними в ветки dev. Основная ветка master ничего не знает о ветки dev. т.е. можно разрабатывать параллельно два блока в одном файле с другим разработчиком. Ну, понятное, дело, что не один и тот же блок =)

Git — распределённая система контроля версий: базовые настройка

Ваши файлы изолированы от ветки master, помните про это.

Ветвление веток

Вам понадобилось создать ветку и вы хотите, что она взяла свое начало от ветки master.

git branch dev-test master

Если ввести –oneline, то вы увидите, что присутствуют коммиты главной ветки master.

Теперь все то же самое в кракене.

Git — распределённая система контроля версий: базовые настройка

А так можно переключатся между ветками.

git checkout master

Git — распределённая система контроля версий: базовые настройка

Публикация в ГИТ

Загрузка на гитхаб и обновление версий.

Вы работаете с другом над одним проектом, у каждого из вас есть локальная копия у себя на компьютере, т.е. локальный репозиторий. Вы создали новую ветку и приступили к разработке какого-то блока, закончили. Теперь настало время поделится этим блоком, и чтобы у вашего друга этот блок тоже появился.

Настройка SSH

Это необходимо для синхронизации вашего локального репозитория с гитхабом.

ssh-keygen //создаем ключ

Путь где будет лежать ваш файл, жмем интер.

Git — распределённая система контроля версий: базовые настройка

Дальше идет кодовая фраза, она не обязательна, так что просто жмем ентер.

Git — распределённая система контроля версий: базовые настройка

Если указали кодовую фразу, то повторите её, если нет, то просто ентер. Дальше переходим на сайт гитхаб в настройки своего профиля, а там в SSH keys. Жмем new ssh key. Указываем любое название, в поле key вставляем содержимое сгенерированного ключа. Просто откройте сгенерированный файл в блокноте «id_rsa.pub». Жмем сохранить естественно, подтверждаем пароль от гита.

Заходим в свой репозиторий на гитхабе и жмем ssh.

Git — распределённая система контроля версий: базовые настройка

Теперь переходим в консоль.

git clone [ссылка, что скопировали в хабе] [путь до вашего репозитория на вашем компьютере]

Все, мы взяли репозиторий из гитхаба и перенесли его себе на компьютер.

Добавили в проект новый файл index.html и перенесем его на гитхаб. Создать файл можно обычными средствами виндовс. Дальше через консоль, добавляем его на гитхаб.

//переходим в папку локального репозитория
git add index.html
git status //проверяем
git commit -m 'add index.html'
git status //проверяем
git push //переносим на гитхаб

Проверяем визуально на гитхабе.

Git — распределённая система контроля версий: базовые настройка

Загружаем из Гитхаба себе на локальный репозиторий

git pull //загрузить себе на компьютер с гита

А теперь все то же самое на кракене.

Открываем кракен и следуем инструкция на скриншоте.

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Добавление фалов и скачивание осуществляется с помощью кнопок.

Git — распределённая система контроля версий: базовые настройка

git fetch //подгрузить обновления

Слияние веток

Подошло время вам с другом объединить, все что вы навояли, путем слияния веток в одну.

git branch //смотрим какие ветки есть
git merge  [название ветки] // сольет эту ветку с основной веткой

Если видите сообщение «Already up to date», это значит, что в этой ветки нет изменений с последнего слияния.

Чтобы увидеть изменения в удалённом репозитории по слиянию, необходимо выполнить команду:

git push //загрузить все изменения на сервер

Удаляем не актуальные ветки:

git branch -d [ветка1 ветка2]

Но таким образом вы удаляете ветки только с локального репозитория. Чтобы удалить эти ветки с удалённо репозитория, нужно:

git push --delete origin [ветка1 ветка2]

В кракене делается все точно также, только мышкой. Я думаю разберетесь.

Смена версий

Git — распределённая система контроля версий: базовые настройка

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 //удалить тег с удаленного репозитория

Теперь через кракен. Добавляем тег. Выбираем нужный комит. Дальше смотрите на скриншоты и выполняйте теже действия.

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Git — распределённая система контроля версий: базовые настройка

Загружаем тег на сервер.

Git — распределённая система контроля версий: базовые настройка

Создание pull-request

Это нужно для свместного обсуждения кода.

Git — распределённая система контроля версий: базовые настройка

И тоже самое в кракене.

Git — распределённая система контроля версий: базовые настройка

Создаем коммит, загружаем на сервер, дальше появится в меню в следующий пункт.

Git — распределённая система контроля версий: базовые настройка

Заполняем поля и жмем зеленую кнопку =)

Git — распределённая система контроля версий: базовые настройка

На этом пока поставлю точку. Понятное дело, что все охватить за раз не получится. Я буду дополнять эту статью, т.к. сам пользуюсь гитом и иногда забываешь что-то если не часто этим пользуешься. Всем удачи и хорошег кодинга.

Чеклист

Создаем локальный репозиторий:

cd [папка]
git init //создаем репозиторий

Создаем удаленый репозиторий:

  1. Заходим на гит и ручками создаем

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
Предыдущая
ПрограммированиеЯ программист
Следующая
ПрограммированиеНастройка Web сервера на Ubuntu 20.04
Помогла статья? Оцените её
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Оценок: 2
Загрузка...
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.