1. Treeish
1.1. относительные ссылки на коммиты
1.2. HEAD^^ || HEAD~2
1.3. SHA_COMMIT^^
1.4. Git ls-tree HEAD || Git ls-tree HEAD^
2. REMOTE
2.1. Git remote [-v]
2.1.1. Показывает список подключенных серверов
2.2. Git remote add <alias> <url>
2.2.1. alias по умолчанию - origin
2.3. Git remove rm <alias>
2.4. Git clone <url> [name]
2.4.1. Склонировать в текущую папку
2.5. Git push [-u] <alias> <branch_name_local>
2.5.1. Если трекинг - просто Git push
2.5.2. Трекинг ставим при помощи -u
2.6. Git log origin/master
2.6.1. Обращение к remote репо
2.7. Git fetch <alias>
2.7.1. Получает сведения о ветке с гитхаба
2.8. Git merge <alias>/<branch>
2.8.1. Скопирует то, что получили в fetch в текущую локальную ветвь
2.9. Git checkout -b <new_local_branch> <alias>/<remote_branch>
2.9.1. Скопирует новую полученную ветку из fetch в новую локальную ветку
2.10. Git pull = git fetch + git merge
2.10.1. Если возникают ошибки - применять отдельно
2.11. Git push <alias> --delete <branch_name>
2.11.1. Удаляет ветвь на удаленном сервере
2.12. git config remote.<alias>.url https://you:[email protected]/you/example.git
2.12.1. Если хотим закешировать пароль
3. Branches
3.1. Git branch -a
3.1.1. Показывает существующие бранчи
3.1.2. Звездочка показывает где мы сейчас
3.2. Git branch --merged
3.2.1. Показывает все ветви, которые содержат коммиты предыдущих ветвей
3.3. Git branch -m old_name new_name
3.3.1. Переименование ветви
3.4. Git branch -d name
3.4.1. Удалить ветвь
3.5. Git branch new_feature
3.5.1. Создаем новую ветвь
3.6. Git checkout new_feature
3.6.1. Переключаем ХЕД на ветвь
3.7. Git checkout -b new_feature
3.7.1. Создаем и переключаемся на ветвь!
3.8. Git diff master..new_branch
3.8.1. Сравнить бренчи
3.9. MERGE
3.9.1. Переключиться на ветвь, в которую будем делать merge
3.9.2. Git merge branch_name
3.9.3. Gir merge --abort
3.9.3.1. Отменить при конфликтах
3.10. STASH
3.10.1. Место, где мы можем хранить файлы без коммитов
3.10.2. Можно применять, когда мы хотим переключить ветку без коммита
3.10.3. Stash можно применять в любой ветви без коммита
3.10.4. Git stash save "Comments to stash"
3.10.5. Git stash list
3.10.5.1. List of stashes
3.10.6. Git stash show stash@{0}
3.10.7. Git stash pop stash@{0}
3.10.7.1. Применяет сташ к текущей ветке и удаляет его
3.10.8. Git stash apply stash@{0}
3.10.8.1. Не удаляет
3.10.9. Git stash drop stash@{0}
4. Первоначальная настройка
4.1. git config --global user.name "John Doe"
4.2. git config --global user.email [email protected]
4.3. git config --global core.editor "notepad.exe"
5. Отслеживание новой директории
5.1. Перейти в нее
5.2. Git init
5.3. Для удаления - удалить папку .git
5.4. GIT CLONE URL .
5.4.1. Клонирует репо из урла в текущую папку
6. Порядок работы
6.1. Делаем изменения
6.2. Git add .
6.2.1. Берет все изменения текущей директории
6.2.2. Вместо точки - можно указать файл
6.3. Git игнорирует пустые директории! Класть в них файл .gitkeep
6.4. Git commit
6.4.1. Комментируем изменения и добавляем в репо
6.5. Git commit -a (add+commit)
6.6. .gitignore - в корне для файлов, которые надо игнорировать. Действуют regexp
6.6.1. https://github.com/github/gitignore
7. Общие команды
7.1. Git log
7.1.1. Показывает последние коммиты
7.2. Git log --oneline --graph --all --decorate
7.2.1. украшаем лог
7.3. Git status
7.3.1. Есть ли новые изменения, не добавленные в коммиты?
7.4. Git diff
7.4.1. Показывает внесенные изменения, которые не были добавлены в репо (только в рабочей дирректории) - проверяются строки
7.5. Git diff --staged
7.5.1. Внесенные изменения в stage
7.6. Git diff --color-words <file>
7.6.1. Точное указание изменений - кусок строки
7.7. Git diff SHA_COMMIT [file]
7.7.1. Показывает отличия файлов текущего коммита от указанного
7.8. Git rm <file>
7.8.1. Удалить файл из рабочей дирректории
7.9. Git mv file.txt file2.txt
7.9.1. Переименование, перемещение
7.9.2. Можно удалить через проводник, потом rm + add - git поймет, что мы переименовали
7.10. Git checkout -- index.html
7.10.1. Восстановить файл или дир из репо
7.11. Git checkout SHA_COMMIT -- index.html
7.11.1. Восстановить файл из прошлого коммита
7.12. Git reset HEAD file.txt
7.12.1. Сбросить git add file.txt
7.13. Git commit --amend
7.13.1. Поменять сообщение последнего коммита
7.14. Git revert SHA_COMMIT
7.14.1. Отменить все действия этого коммита и создать новый коммит
7.15. Git reset
7.16. Git clean -n
7.16.1. Покажет какие файлы можно удалить перед коммитом (temp)
7.17. Get clean -f
7.17.1. Удалит файлы! Удаляет файлы, которым мы не сделали Git add
7.18. Git show SHA_COMMIT
7.18.1. Показывает diff, сделанный в коммите