Skip to content

Phoolore/GitTraining

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 

Repository files navigation

Git руководство для начинающих

Теория

Git

Git является системой контроля версий (сокр. квс от англ. control version system) и использется для работы с файлами на вашем компьютере фукнции гит

  1. Сохранение файлов в системе
  2. Сохранение истории изменения файлов
  3. Возможность вернуться к предыдущей версии файла

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

Сервисы для хранения проектов в интернете

Список основных сервисов:

  1. GitHub - одно из самых известных сообществ для разработчиков от Microsoft, удобен и бесплатен
  2. GitLab - основная альтернатива GitHub для тех кто негативно относится к Microsoft, оссобеность данного продукта его открытый код и особый подход, он создает сервер для вашего репозитария, как бы хостинг, и вы им пользуетесь
  3. BitBucket - сервис похожий на гит, созданный Atlassian, вследствие более легко интегрируется с другими проектами этой копании, например, Jira. Данный сервис имеет бесплатное решение для команд до 5 человек, и сниженую стоимость для продуктов для более больших команд по сравнению с другими сервисами. согласно википедии в данном руководстве мы будем работать с GitHub

Обучение

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

Настройка локального репозитория

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

  1. Скачиваем и устанавливаем Git c официального сайта
  2. С помощью встроенного терминала вашего пк или с помощью GitBash создаем и переходим в папку вашего проекта
cd FolderForProjects
mkdir MyProject
cd MyProject
  1. Создаем локальный репозиторий в данной папке
git init
  1. Создадим пару файлов для проверки
touch myfile.txt
mkdir images
  1. Добавим их в отслеживаемые файлы для Git bash git add myfile.txt images
или
```bash
git add --all
``` (от англ. add, «добавить» + all, «всё») — подготовь к коммиту сразу все файлы, в которых были изменения, и все новые файлы.
или
```bash
git add .
``` подготовить к коммиту текущую папку и все файлы в ней.

6. Сделаем "Фото" текущего состояния, версию для Git
```bash
git commit -m"Init commit"

Теперь у нас есть локальный репозиторий с 1 версией, коммитом

Настройка облака и привязка

Есть несколько способов отправки в облако для GitHub их 3:

  1. ssh - наиболее защищеный
  2. https - хорошая защита и удобство
  3. GitHub CLI - скорее всего работает как https однако использует внутренюю систему навигации

в данном гайде мы будем использовать https

  1. Регистрация и создание репозитория в GitHub с помощью интерфейса
  2. копируем URL на репозиторий, но в концу в следующем шаге нужно добавить ".git", например, https://github.com/MyName/MyProjectName -> https://github.com/MyName/MyProjectName.git
  3. связываем Git и GitHub
git remote add origin https://github.com/MyName/MyProjectName.git
  1. Проверим, что репозитории действительно связались
git remote -v

-v (от англ. verbose, «подробный»)

  1. Теперь нужно отправить изменения из локального в глобальный репозиторий
git push -u origin main

параметр -u нужен только в первый раз далее можно просто git push

Тестовый запуск

Теперь повторим все это на для новых изменений

  1. Вы вносите изменения в файлы или создаёте новые
touch newfile.txt
  1. Добавляем изменения в Git или файлы для отслеживания
git add newfile.txtt

также можно использовать "git add ." это автоматически добавит все файлы в текущей папке

  1. Создаём новую версию
git commit -m"New file newfile.txt"
  1. Отправляем её на сервер
git push

Продвинутое пользование

git log

Git, как вы знаете, используется не только для хранения и отправки данных на сервер, в нём также можно просматривать те самые данные, изучать их, смотреть изменения, и возвращаться к ним. Итак начнем с просмотра истории вашего репозитория, для этого понадобится команда git log, введя которую вы сможете просмотреть все коммиты от самого нового до самого первого, для выхода можете ввести:

  1. q
  2. Q
  3. :q
  4. :Q
  5. ZZ

Для этой команды также есть параметры:

  1. -p или --patch - Отображает изменения
  2. --stat - Отображает статистику изменения
  3. --shortstat - Отображает только строку с количеством изменений/вставок/удалений для команды --stat.
  4. --name-only - Показывает список изменённых файлов после информации о коммите.
  5. --name-status - Показывает список файлов, которые добавлены/изменены/удалены.
  6. --abbrev-commit - Показывает только несколько символов SHA-1 чек-суммы вместо всех 40.
  7. --relative-date - Отображает дату в относительном формате (например, «2 weeks ago») вместо стандартного формата даты.
  8. --graph - Отображает ASCII граф с ветвлениями и историей слияний
  9. --oneline - Сокращение для одновременного использования опций --pretty=oneline --abbrev-commit.
  10. --pretty - Настраивает шаблон представления коммита с помощью ключей можно настроить порядок выведения выбранных параметров в формате --prety="Хэш : %H, информация: %s" где символы %H, %s будут заменены согласно ключам

Вот список ключей для --prety:

  • %H - Хеш коммита
  • %h - Сокращённый хеш коммита
  • %T - Хеш дерева
  • %t - Сокращённый хеш дерева
  • %P - Хеш родителей
  • %p - Сокращённый хеш родителей
  • %an - Имя автора
  • %ae - Электронная почта автора
  • %ad - Дата автора (формат даты можно задать опцией --date=option)
  • %ar - Относительная дата автора
  • %cn - Имя коммитера
  • %ce - Электронная почта коммитера
  • %cd - Дата коммитера
  • %cr - Относительная дата коммитера
  • %s - Содержание

Содержание в процессе просмотра вы заметили, что обычно каждый коммит состоит из 4 вещей:

  1. commit - после него указан уникальный id коммита, хэш, по которому вы всегда можете обратиться к нему
  2. Author - после него указан автор данного коммита
  3. Date - после него указано время коммита(день недели, месяц, число, точное время до секунд, год, часовой пояс)
  4. последняя строчка без оглавления, в ней указано сообщение коммита, указаное при создании коммита

А последний коммит был назван HEAD, обратившись к переменной HEAD вы всегда найдёте последний коммит, ее также можо использовать в командах вместо хэша последнего коммита

git status

Просмотр состояния файлов git status (от англ. status, «статус», «состояние») — покажи текущее состояние репозитория.

git commit --amend

Добавление изменений в последний коммит git commit --amend --no-edit (от англ. amend, «исправить») — добавь изменения к последнему коммиту и оставь сообщение прежним; git commit --amend -m "Новое сообщение" — измени сообщение к последнему коммиту на Новое сообщение.

Если вы не указали, что сообщение остаётся прежним/(--no-edit/) и не указали сообщение /(-m "Сообщение"), откроется встроенный редактор, выйти из которого можно нажав нужные клавиши из инструкции внизу экрна/(^ - значит Ctrl), но есть редактор без инструкции,Vim, чтобы выйти из редактора Vim: нажать Esc, ввести :qa!, нажать Enter.

git restore

«Откат» файлов и коммитов git restore --staged hello.txt (от англ. restore, «восстановить») — переведи файл hello.txt из состояния staged обратно в untracked или modified; git restore hello.txt — верни файл hello.txt к последней версии, которая была сохранена через git commit или git add;

git reset

git reset --hard b576d89 (от англ. reset, «сброс», «обнуление» + hard, «суровый») — удали все незакоммиченные изменения из staging и «рабочей зоны» вплоть до указанного коммита. Просмотр изменений

git diff

git diff (от англ. difference, «отличие», «разница») — покажи изменения в «рабочей зоне», то есть в modified-файлах; git diff a9928ab 11bada1 — выведи разницу между двумя коммитами; git diff --staged — покажи изменения, которые добавлены в staged-файлах.

About

Марафон в яндекс

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published