Skip to content

Wor1ock/GitPractice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 

Repository files navigation

Инициализация репозитория

git init

  • Одна из редко применяемых команд, ведь репозиторий создаётся один раз, а пользоваться им можно сколько угодно долго. Создаёт файл .git который хранит всю историю коммитов. Без файла репозиторий не может существовать.

rm -rf .git

  • Позволяет рекурсивно форсированно удалить репозиторий.

git status

  • Показывает текущее состояние репозитория. В любой непонятной ситуации стоит посмотреть состояние (статус) репозитория, а потом решить, что делать дальше.

git add

  • Позволяет подготовить файлы к сохранению. Но сохранения пока не произошло, потому что команда git add только запоминает текущее содержимое (контент) файла.

git add . или git add -A/--all

  • Добавит папку целиком.
    git add %filename.txt
  • Добавит конкретный файл.

git commit -m "текст коммита"

  • Команда git add не сохраняет содержимое файлов в репозитории. Само сохранение, или фиксацию состояния файлов, называют коммитом (от англ. commit — «совершать» «фиксировать»). «Сделать коммит» значит сохранить текущую версию файла.

git log или git log --oneline

  • Позволяет посмотреть историю коммитов/выведет историю одной строкой -- хэш + комментарий к коммиту.

git remote add origin

  • Команде необходимо передать два параметра: имя удалённого репозитория и его URL. С помощью git remote -v можно убедиться, что репозитории связаны. git remote add origin git@github.com:Wor1ock/GitPractice.git

git push

  • В первый раз эту команду нужно вызвать с флагом -u и параметрами origin (имя удалённого репозитория) и main или master (название текущей ветки).
    git push -u origin main

git clone %repoAdress

  • Копирует проект на локальный компьютер и автоматически связывает локальный репозиторий с удалённым.

Работа с файлами

git restore --staged %file

  • Удаляет файл из индекса. Полезно, если случайно индексировал временный файл.

git reset --hard %commitHash

  • Позволяет откатить проект к коммиту с указанным хэшем.
    Git reset --hard вернет дерево проекта и индекс в состояние, соответствующее указанному коммиту, удалив изменения последующих коммитов. «Мягкий» (с ключом "--soft") резет оставит нетронутыми ваши индекс и все дерево файлов и директорий проекта, вернется к работе с указанным коммитом.

git restore %file

  • Позволяет отменить изменения у файла и вернуться к закоммиченной версии.

Просмотр разницы коммитов

git diff

  • Показывает разницу между файлами последнего коммита (состоянием сохранённых файлов) и текущими файлами, которые находятся в состоянии modified.

git diff --staged

  • Флаг добавляет возможность посмотреть изменения не только изменённых, но и файлов, добавленных в индекс (staged).

git diff %hash1 %hash2

  • Выводит разницу между двумя коммитами.

git diff branch-one branch-two

  • Можно сравнить ветки.

Работа с ветками

Ветка (англ. branch) — это изолированный поток разработки проекта. Прежде чем писать новую функциональность, для неё следует создать отдельную ветку. Ветка в Git — это указатель на коммит. Когда вы делаете новый коммит в ветке, этот указатель передвигается вперёд.

git branch, git branch branchName и git branch -a

  • Команда для просмотра веток/создание ветки branchName/покажет все известные ветки, как локальные, так и удалённые. Название ветки в Git может состоять из букв, цифр, а также включать любой из четырёх символов: ., -, _, /.

git checkout branchName и git checkout -b branchName

  • Переключиться на другую ветку/создать ветку и сразу переключиться на неё.

git merge branchName

  • Выполнить слияние.

git branch -D branchName

  • Удалить ветку. С флагом -d удалит ветку только если она была полностью объединена с другой — то есть если две ветки стали (или изначально были) частью одной истории. Удаление локальной ветки через Git не удаляет ветку на GitHub!

git push

  • Отправить локальную ветку в удалённый репозиторий.

git pull

  • Забрать изменения из удалённого репозитория.

Про Git и GitHub

  • Git — это консольный инструмент для работы с локальными и удалёнными репозиториями. Он не связан напрямую ни с одной из платформ и развивается отдельно от них.
  • GitHub — платформа, которая работает с Git и упрощает командное взаимодействие.
  • Fork (англ. «развилка», «ответвление»), или «форк», — это GitHub-операция; напрямую с Git она не связана. «Форк» создаёт копию репозитория в аккаунте GitHub. Такая копия будет полностью независима. Изменения, которые вы внесёте, не будут синхронизированы с исходным репозиторием.

Про SSH (Secure Shell)

Это сетевой протокол. Он обеспечивает безопасный обмен данными в сети. С помощью этого протокола можно получать данные с удалённого компьютера или отправлять их на него. Трафик шифруется, поэтому протокол безопасен.
ls -la .ssh/ - позволяет проверить наличие ключа
ssh-keygen -t ed25519 -C "%userMailOnGitHub" - позволяет сгенерировать ключ
ssh -T git@github.com - соединяет с сервером GitHub

Команды консоли для Windows

clip < %file

  • Копирует содержимое файла в буфер обмена.

echo текст > %file.txt

  • Сотрёт содержимое файла и запишет в него строку. Позволяет создать/заменить файл.

echo текст >> %file.txt

  • Запишет строку в конец файла.

type %file.txt

  • Выводит содержимое файла в консоль. Для Linux работает команда type.

Хэш коммитов

Хеширование (от англ. hash, «рубить», «крошить», «мешанина») — это способ преобразовать набор данных и получить их отпечаток.
Информация о коммите — это набор данных: когда был сделан коммит, содержимое файлов в репозитории на момент коммита и ссылка на предыдущий (или родительский) коммит.
Хеш — основной идентификатор коммита.
git log --oneline
Позволяет получить сокращённый лог. В сокращённом логе выводятся сокращённые хеши — их можно использовать точно так же, как и полные. Она самостоятельно подберёт оптимальное количество символов.

Файл HEAD

Он указывает на коммит, который сделан последним (то есть на самый новый). Если нужно передать последний коммит, то вместо его хеша можно просто написать слово HEAD — Git поймёт, что вы имели в виду последний коммит.

Статусы файлов в Git

Staging area также называют index (англ. «каталог») или cache.

graph LR;
  untracked -- "git add" --> staged + tracked;
  staged    -- "git commit" --> tracked;
  tracked   -- "изменения" --> modified;
  modified  -- "git add" --> staged;
Loading

Дополнительная иформация по командам

https://habr.com/ru/articles/60347/

About

Cheatset on Git

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors