Устали искать и гуглить команды для git? 40+ git-команд для комфортной работы с VCS. Без лишней воды — поехали!

Кстати, для тех, кто хочет зарабатывать на программировании без нудного изучения кода есть новый обширный курс по работе с no-code инструментами от ZeroCoding. Я создал там телеграм-бота с 10 минут на конструкторе. Легко, понятно и доступно всем.

Содержание

1. Настройка git

git config --global user.name "ваше имя"  
git config --global user.email "email@hp.com"  

2. Создание локального репозитория git

git init (directory)

Используйте directory, если вы хотите создать в папке отличающейся от текущей

3. Клонирование удаленного репозитория из Github

git clone (url)

4. Добавить файл в stage-зону

Иными словами вы начинаете отслеживать изменения файла

git add (file)

Для добавления всех файлов в директории делается так.

git add .

5. Commit изменений

git commit -m "(message)"

Если вы хотите добавить все изменения, внесенные в отслеживаемые файлы и commit

git commit -a -m "(message)"

# или

git commit -am "message"

6. Удаление файла из stage-зоны

git reset (file)

7. Перемещение файла

git mv (current path) (new path)

8. Удаление файла

git rm (file)

Вы можете также удалить файл из stage зоны используя --cached

git rm --cached (file)

9. Именование базовой ветки

Базовая (defauil) ветка в гит называется — main

10. Базовая (default) удаленная ветка

Удаленная ветка всегда называется origin

11. Показать ветки

git branch

Полезные флаги:

  • -a: Показать все ветки (local & remote)
  • -r: показать только удаленные (remote) ветки
  • -v: Показать ветки с последним commit

12. Создание ветки git

git branch (branch)

Используя переход на новую ветку, если ветки не существует — она так же будет создана.

git checkout -b (branch)

13. Переход на другую ветку

git checkout (branch)

14. Удалить ветку

git branch -d (branch)

Также можно принудительно удалить ветку (force delete) используя флаг -D

git branch -D (branch)

15. Различия межу двумя ветками

git diff branch1..branch2 

16. Подробное описание ветки

git branch -vv

17. Слияние веток (Merge a branch)

git merge <branch to merge into HEAD>

Полезные флаги:

  • --no-ff: Создает merge commit даже если доступен режим fast-forward
  • --squash: Совместить все commit из указанной ветви(branch) в один

Fast forward Merge

Fast-forward-merge

Non-Fast forward Merge

No-fast-forward-merge

18. Перебазирование (rebase) ветки

Перебазирование— это процесс перемещения или объединения последовательности нескольких фиксаций(commit) в новую базовую фиксацию(commit).

Rebase
git rebase <branch to rebase from>

19. Переход к прошлой фиксации (commit)

git checkout (commit id)

20. Отмена фиксации (коммита)

git revert (commit id)

21. Удаление коммита

git reset (commit id)

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

git reset --hard (commit id)

22. Проверка состояния репозитория

git status

23. История коммитов git

git log

24. Изменения в не подготовленных (unstaged) файлах

git diff

Можно посмотреть изменения в подготовленных файлах.--staged

git diff --staged

Некоторые термины в git не принято переводить на русский язык и stage тому явный пример. По сути все staged-файлы являются предварительной заготовкой для коммита, если вы наберёте команду git commit -m "Commit message" то будет создан коммит на основе текущей staging area. Файл становится «подготовленным» после команды git add <FILENAME>, где <FILENAME> — имя модифицированного файла. Поэтому подготовленные и неподготовленные файлы лучше читать как stage и unstage без перевода.

прим. Happy Python

25. Отображение изменений между двумя фиксациями

git diff (commit id 01) (commit id 02)

26. Работа с хранилищем (stash)

Здесь аналогично перевод термина неуместен. Как правило используется понятие stash

прим HappyPython

stash позволяет вам сохранить изменения временно без создания коммита

git stash

Можно добавить сообщение

git stash save "(message)"

27. Список стэшей

git stash list

28. Применить хранилище (stash)

Применение stash НЕ удалит его из списка тайников (stash list).

git stash apply (stash id)

Если вы не укажете <stash id>, будет применен последний stash (действителен для всех аналогичных команд хранилища)

Вы также можете использовать формат stash@{<index>} для применения stash (допустимо для всех подобных команд тайника)

git stash apply stash@{0}

29. Удалить хранилище (stash)

git stash drop (stash id)

30. Удалить все хранилища (stash)

git stash clear

31. Удалить после применения хранилища

git stash pop (stash id)

32. Показать изменения в хранилище (stash)

git stash show (stash id)

33. Добавить удаленный репозиторий

git remote add (remote name) (url)

34. Показать удаленные репозитории

git remote

Добавление флага -v покажет url репозиториев

git remote -v

35. Удаление удаленного репозитория

git remote remove (remote name)

36 Переименование удаленного репозитория

git remote rename (old name) (new name)

37. Получение изменений из удаленного репозитория

git fetch (remote name)

38. Получение изменений из определенной ветви

git fetch (remote name) (branch)

39. Извлечение изменений из удаленного репозитория в локаль

git pull (remote name) (branch)

40. Отправка изменений в удаленный репозиторий

git push (remote name)

41. Отправка изменений в определенную ветвь

git push (remote name) (branch)

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

Скачать PDF со всеми этими командами можно здесь