Skip to content

Latest commit

 

History

History
151 lines (92 loc) · 5.29 KB

cheat-sheet.md

File metadata and controls

151 lines (92 loc) · 5.29 KB

Создание репозитория

Переход в директорию, где нужно создать репозиторий:

$ cd имя-директории

Создание репозитория:

$ git init

Markdown

Узнать больше о Markdown можно тут.

Пример Markdown-разметки:

# My beloved repo
Here I write how much I love markdown.
It's awesome because reasons:
 - It's cool
 - It has lists
 - *It also has italic*
 - **And bold**
 - `And nice monospace font`

Результат:


My beloved repo

Here I write how much I love markdown. It's awesome because reasons:

  • It's cool
  • It has lists
  • It also has italic
  • And bold
  • And nice monospace font

Обзор и сохранение изменений

Текущий статус файлов в репозитории:

$ git status

Добавление файла в индекс:

$ git add <filename>

Запись совершённых изменений:

$ git commit -m "<message>"

Принято писать глаголы в сообщениях к коммитам в повелительном наклонении (например: "Add new feature").

Добавление в коммит изменений во всех файлах, уже добавленных в индекс:

git commit -am "<message>"

Игнорирование файлов

Пример .gitignore-файла:

# удалим все исполняемые файлы
*.exe
# удалим все файлы и папки с именем bin
bin
# удалим конкретный файл с секретными сведениями
\data\secret_key.txt

Гит не будет отображать изменение или создание таких файлов и не будет сохранять изменения в них.

Отмена коммитов

Просмотр истории коммитов:

$ git log

Просмотр последних трёх коммитов из истории:

git log -3

Отмена последнего коммита:

$ git revert HEAD

Если необходимо удалить не последний коммит, вместо HEAD необходимо написать хэш-код нужного коммита (длинная последовательность шестнадцатеричных чисел, подсвеченная в логе жёлтым).

Ветки и слияние

Создание новой ветки:

git branch <branch-name>

Переключение на ветку:

git checkout <branch-name>

Два прошлых действия одновременно:

git checkout -b <branch-name>

Слияние ветки <branch-name> с текущей:

git merge <branch-name>

Удаление ветки:

git branch -d <branch-name>

Полное удаление коммита

git reset --hard HEAD~1

Количество удаляемых коммитов указывается после знака ~

Подключение локального репозитория к репозиторию на GitHub

$ git remote origin <адрес репозитория>.

Локально этому удалённому репозиторию присваивается имя origin, по которому к нему можно обращаться.

Публикация репозитория с сопоставлением локальной и удалённой веток master:

git push --set-upstream origin master

Опубликовать изменения в удалённом репозитории когда необходимые сопоставления веток уже совершены:

git push

Копирование существующего репозитория

$ git clone <ссылка на репозиторий>

Всё содержимое репозитория будет скопировано в директорию с его именем. У локальной копии уже будет привязка к remote.

Конфликты — основной источник проблем

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

<<<<<<< HEAD
<конфликтующий код из текущей ветки>
=======
<конфликтующий код из ветки для мёрджа>
>>>>>>> <ветка, которую мёрджили>

Всю это конструкцию надо заменить кодом, который должен по вашему мнению оказаться в ветке на месте конфликта. Когда вы разрешите конфликты, проверьте статус, добавьте изменённый файл, сделайте коммит. Пока вы не сделали коммит, можно выполнить $ git merge --abort, чтобы отменить слияние.