Online Mind Mapping and Brainstorming

Create your own awesome maps

Online Mind Mapping and Brainstorming

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 - 11 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"