corocoto / git-cheatsheet

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Шпаргалка по Git

  1. Посмотреть все установленные настройки и узнать, где они располгаются:
$ git config --list --show-origin
  1. Установка имени пользователя и адреса эл. почты:
$ git config --global user.name "Artem Gusev"
$ git config --global user.email gusev2014russia@mail.ru
  1. Установка дефолтного редактора:
# sets atom as default code editor
$ git config --global core.editor atom

# sets visual studio code as default code editor
$ git config --global core.editor "code --wait"

# sets vim as default code editor
$ git config --global core.editor "vim"
  1. Посмотреть текущий конфиг git'а:
$ git config --list
  1. Просмотреть значение опредленного ключа в конфиге:
$ git config user.name
  1. Помощь в git:

Если вам нужна помощь при использовании Git, есть 3 способа открыть страницу руководства по любой команде Git:

$ git help <команда>
$ git <команда> --help
$ man git-<команда>

Если же вам нужна краткая инструкция по использования:

$ git <команда> -h
  1. Инициализция репозитория
$ git init

Эта команда создает в текущей директории новую поддиректорию с именем .git, содержащую все необходимые файлы репозитория - структуру Git-репозитория.

  1. Клонирование существующего репозитория:
$ git clone <url>
  1. Для того, чтобы клонировать репозиторий в директорию, отличающимся от имени клона, необходимо указать желаемое имя, как парметр командной строки. За пример возьмем клонирование libgit2:
$ git clone https://github.com/libgit2/libgit2 mylibgit
  1. Сокращенный вывод статуса:
$ git status -s
<или>
$ git status --short 
  1. Вывод подробной информации об изменениях (просмотр добавленных и удаленных строк):

    • Просмотр непроидексированных имзенений:
    $ git diff
    • Просмотр проиндексированных изменений:
    $ git diff --staged
    <или>
    $ git diff --cached
  2. Коммит изменений:

    • Открытие редактора, прописанного в конфиге, с возможностью ввода текста для коммита:
    $ git config

    P.S. В редакторе будет отображен следующий текст (или похожий на него):

     # Please enter the commit message for your changes. Lines starting
     # with '#' will be ignored, and an empty message aborts the commit.
     # On branch master
     # Your branch is up-to-date with 'origin/master'.
     #
     # Changes to be committed:
     #
     new file:
     README
     #
     modified:
     CONTRIBUTING.md
     #
     ~
     ~
     ~
     ".git/COMMIT_EDITMSG" 9L, 283C`

    ПРИМЕЧАНИЕ! Для ещё более подробного напоминания, что же именно вы поменяли, можете передать аргумент -v в команду git commit. Это приведёт к тому, что в комментарий будет также помещена дельта/diff изменений.

    Когда вы выходите из редактора, Git создаёт для вас коммит с этим сообщением, удаляя комментарии и вывод команды diff.

  3. $ git add <файл> + $ git commit <файл> -m "<сообщение>" = $ git commit -a -m "<сообщение>"

    • -a - включает все файлы
  4. Удаление файлов из директории и из списка отслеживаемых файлов:

$ git rm <файл>
  1. Удалить файл из индекса, оставив его в рабочем каталоге:
$ git rm --cached <файл>
  1. Отобраение всех коммитов в истории текущей ветки:
$ git log
  1. Вывод логов с показом изменений:
$ git log -p
<или>
$ git log --patch
  1. Вывод логов с краткой записью об изменениях:
$ git log --stat
  1. Граф в формате ASCII, который показывает текущую ветку и историю слияний:
$ git log --graph
  1. Изменение сообщения в последнем коммите:
$ git commit --amend -m "Новое сообщение"
  1. Синхронизация fork-a на github с основным репозиторием:
// Добавляем адрес для отслеживаемой веткой (upstream branch) основного репозитория
$ git remote add upstream https://github.com/test/test-example.git

// Просматриваем все удаленные ветки
$ git remote -v

// Получаем себе веточки
$ git fetch upstream

// Делаем merge нужной нам ветки с master основного репозитория
$ git merge upstream/master
  1. Удаление файла из stage
$ git reset [file]

Возможные проблемы при работе с git и их решения

  1. Как выйти из git diff?

Ответ: Нажать на клаишу q