Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

Шпаргалка по Git - ruslan.cc by Mind Map: Шпаргалка по Git - ruslan.cc
5.0 stars - 10 reviews range from 0 to 5

Шпаргалка по Git - ruslan.cc

Порядок работы

Делаем изменения

Git add .

Берет все изменения текущей директории

Вместо точки - можно указать файл

Git игнорирует пустые директории! Класть в них файл .gitkeep

Git commit

Комментируем изменения и добавляем в репо

Git commit -a (add+commit)

.gitignore - в корне для файлов, которые надо игнорировать. Действуют regexp

https://github.com/github/gitignore

Отслеживание новой директории

Перейти в нее

Git init

Для удаления - удалить папку .git

GIT CLONE URL .

Клонирует репо из урла в текущую папку

Общие команды

Git log

Показывает последние коммиты

Git log --oneline --graph --all --decorate

украшаем лог

Git status

Есть ли новые изменения, не добавленные в коммиты?

Git diff

Показывает внесенные изменения, которые не были добавлены в репо (только в рабочей дирректории) - проверяются строки

Git diff --staged

Внесенные изменения в stage

Git diff --color-words <file>

Точное указание изменений - кусок строки

Git diff SHA_COMMIT [file]

Показывает отличия файлов текущего коммита от указанного

Git rm <file>

Удалить файл из рабочей дирректории

Git mv file.txt file2.txt

Переименование, перемещение

Можно удалить через проводник, потом rm + add - git поймет, что мы переименовали

Git checkout -- index.html

Восстановить файл или дир из репо

Git checkout SHA_COMMIT -- index.html

Восстановить файл из прошлого коммита

Git reset HEAD file.txt

Сбросить git add file.txt

Git commit --amend

Поменять сообщение последнего коммита

Git revert SHA_COMMIT

Отменить все действия этого коммита и создать новый коммит

Git reset

Git clean -n

Покажет какие файлы можно удалить перед коммитом (temp)

Get clean -f

Удалит файлы! Удаляет файлы, которым мы не сделали Git add

Git show SHA_COMMIT

Показывает diff, сделанный в коммите

Treeish

относительные ссылки на коммиты

HEAD^^ || HEAD~2

SHA_COMMIT^^

Git ls-tree HEAD || Git ls-tree HEAD^

Branches

Git branch -a

Показывает существующие бранчи

Звездочка показывает где мы сейчас

Git branch --merged

Показывает все ветви, которые содержат коммиты предыдущих ветвей

Git branch -m old_name new_name

Переименование ветви

Git branch -d name

Удалить ветвь

Git branch new_feature

Создаем новую ветвь

Git checkout new_feature

Переключаем ХЕД на ветвь

Git checkout -b new_feature

Создаем и переключаемся на ветвь!

Git diff master..new_branch

Сравнить бренчи

MERGE

Переключиться на ветвь, в которую будем делать merge

Git merge branch_name

Gir merge --abort, Отменить при конфликтах

STASH

Место, где мы можем хранить файлы без коммитов

Можно применять, когда мы хотим переключить ветку без коммита

Stash можно применять в любой ветви без коммита

Git stash save "Comments to stash"

Git stash list, List of stashes

Git stash show stash@{0}

Git stash pop stash@{0}, Применяет сташ к текущей ветке и удаляет его

Git stash apply stash@{0}, Не удаляет

Git stash drop stash@{0}

REMOTE

Git remote [-v]

Показывает список подключенных серверов

Git remote add <alias> <url>

alias по умолчанию - origin

Git remove rm <alias>

Git clone <url> [name]

Склонировать в текущую папку

Git push [-u] <alias> <branch_name_local>

Если трекинг - просто Git push

Трекинг ставим при помощи -u

Git log origin/master

Обращение к remote репо

Git fetch <alias>

Получает сведения о ветке с гитхаба

Git merge <alias>/<branch>

Скопирует то, что получили в fetch в текущую локальную ветвь

Git checkout -b <new_local_branch> <alias>/<remote_branch>

Скопирует новую полученную ветку из fetch в новую локальную ветку

Git pull = git fetch + git merge

Если возникают ошибки - применять отдельно

Git push <alias> --delete <branch_name>

Удаляет ветвь на удаленном сервере

git config remote.<alias>.url https://you:password@github.com/you/example.git

Если хотим закешировать пароль

Первоначальная настройка

git config --global user.name "John Doe"

git config --global user.email johndoe@example.com

git config --global core.editor "notepad.exe"