Git. Working directory презентация

Содержание

Базовые понятия

Слайд 1Git
Иван Домашних


Слайд 2Базовые понятия


Слайд 3Working directory


Слайд 4Modification


Слайд 5Commit

Commit hash
Commit message
Author
Date


Слайд 6History


Слайд 7Repository
repository + working directory
test/.git – repository + working directory
test.git – bare

repository

Слайд 8Внесение изменений


Слайд 9add to staging area and commit
staging area (index)
repository


working directory
git add .
git

commit

Слайд 10checkout file or reset file
staging area (index)
repository


working directory
git checkout filename
git reset

filename

Слайд 11revert commit






git revert



Слайд 12git mv – переименовывает/перемещает файл*
git rm – удаляет файл



* Git прекрасно

умеет отслеживать изменения сам, * поэтому можно перемещаться файлы любимым способом

move & remove


Слайд 13get status of working directory
# Edit hello.py git status # hello.py is listed

under "Changes not staged for commit" git add hello.py git status # hello.py is listed under "Changes to be committed" git commit git status # nothing to commit (working directory clean)

Слайд 14log history
git log -n
git log --oneline
git log --author="“

git log --graph

--decorate --oneline
git log --graph --decorate --oneline --all

git log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short 

Слайд 15git diff – разница между working directory и index
git difftool –

разница с помощью заданного тула
git difftool --gui – разница в GUI-туле

diff


Слайд 16git help commit
git commit --help
git commit -h
help


Слайд 17Метки и ветки


Слайд 18HEAD





HEAD


Слайд 19checkout to revision




HEAD

git checkout


Слайд 20tag




HEAD

v1.1
git tag “v1.1”


Слайд 21branch



HEAD
master
master – ветка по умолчанию


Слайд 22Развитие фичи



HEAD
master
CoolFeature


Слайд 23Развитие фичи




HEAD
master
CoolFeature


Слайд 24Развитие фичи




HEAD
master
CoolFeature


Слайд 25Что будет при коммите?




Слайд 26checkout branch




HEAD
master
CoolFeature


Слайд 27checkout branch




HEAD
master
CoolFeature
git checkout CoolFeature


Слайд 28create and checkout branch

HEAD
git checkout –b CoolFeature


HEAD
CoolFeature


Слайд 29



HEAD
master


merge


Слайд 30

HEAD
master
CoolFeature

Fast Forward Merge


Слайд 31

HEAD
master
CoolFeature

Fast Forward Merge


Слайд 32



HEAD
master
CoolFeature

rebase


Слайд 33



HEAD
master
CoolFeature

Achtung! Команда меняет историю
rebase


Слайд 34



HEAD
master
CoolFeature

cherry-pick


Слайд 35



HEAD
master
CoolFeature

cherry-pick

git cherry-pick


Слайд 36



HEAD
master
CoolFeature


branch delete


Слайд 37



HEAD
master


branch delete
git branch –d “CoolFeature”


Слайд 38>

iss53:index.html

Конфликт


Слайд 39
Reflog, gc


Слайд 40Операции над репозиториями


Слайд 42

clone
git clone https://repos/repo.git


Слайд 43

https://repos/repo.git
origin = https://repos/repo.git
Remotes


Слайд 44


origin = https://repos/repo.git
fedya = https://fedya/repo.git
https://fedya/repo.git
https://repos/repo.git
Remotes


Слайд 45



master
origin/master

origin/f1
Remote branches


Слайд 46

master
origin/master
fetch


Слайд 47


origin/master
master
fetch


Слайд 48



master
origin/master

origin/f1

fetch
git fetch


Слайд 49



master
origin/master

origin/f1

#1 Новая ветка
#2 Удаленные изменения
Что делать?


Слайд 50


origin/f1

git checkout -b f1 ?
#1 Новая ветка


Слайд 51


origin/f1
f1
git checkout -b f1 ?

#1 Новая ветка


Слайд 52


origin/f1
f1


#3 Локальные изменения
Начинаем править


Слайд 53


origin/f1
f1


git ?
#3 Локальные изменения


Слайд 54


origin/f1
f1


git ?
#3 Локальные изменения


Слайд 55$ git branch -vv
f1 7e424c3 [origin/f1]
master 1ae2a45 [origin/master]
f2

5ea463a


upstream branch or tracking branch

Таблица веток


Слайд 56


origin/f1

git checkout -b f1 origin/f1
git checkout --track origin/f1

git checkout -b f1
#2

НОВАЯ ВЕТКА

checkout upstream


Слайд 57


origin/f1
f1

git checkout -b f1 origin/f1
git checkout --track origin/f1

git checkout -b f1
#2

НОВАЯ ВЕТКА

checkout upstream


Слайд 58


origin/master
master
git push
#3 ЛОКАЛЬНЫЕ ИЗМЕНЕНИЯ
push


Слайд 59


master
origin/master
git push
push
#3 ЛОКАЛЬНЫЕ ИЗМЕНЕНИЯ


Слайд 60


master
origin/master

#2 Удаленные изменения

Что делать?


Слайд 61


master
origin/master


git merge origin/master ?
#2 Удаленные изменения


Слайд 62


master
origin/master


git merge origin/master ?

#2 Удаленные изменения


Слайд 63
master
origin/master
git pull origin =
git fetch + git merge origin/
#2 УДАЛЕННО УЕХАЛО
pull


Слайд 64


master
origin/master
git pull origin =
git fetch + git merge origin/
#2 УДАЛЕННО УЕХАЛО
pull


Слайд 65


master
origin/master
git pull origin =
git fetch + git merge origin/
#2 УДАЛЕННО УЕХАЛО
pull


Слайд 66


origin/master
f2
#1 Нет upstream
Как начать фичу?


Слайд 67


origin/master
f2
origin/f2
git push ?
#4 Нет upstream


Слайд 68


origin/master
f2
origin/f2
git push :
git push origin f2:f2
git push -u origin HEAD
#4

НЕТ UPSTREAM

push ветки


Слайд 69Локально
git branch -d

Удаленно
git push origin --delete
git push origin :
Удаление

ветки

Слайд 70Конфигурирование


Слайд 71git config --system
%ProgramFiles%\Git\mingw64\etc\gitconfig

git config --global
%USERPROFILE%\.gitconfig

git config
/.git/config


Конфигурирование


Слайд 72.gitconfig
[user]
name = username
email = username@mail.com

команды
git config --global user.name Ivan Domashnikh
git config

--global user.email domashnikh@mail.com

Настройка авторства


Слайд 73.gitconfig
[core]
autocrlf = true
safecrlf = true

команды
git config --global core.autocrlf true
git config --global

core.safecrlf true

autocrlf – преобразование \r\n в \n
safecrlf – проверка обратимости преобразования \r\n в \n

Настройка для Windows


Слайд 74.gitconfig
[core]
editor = notepad

будет использоваться для ввода commit message

Выбор текстового редактора


Слайд 75.gitconfig
[merge]
tool = TortoiseMerge

позволяет решать конфликты

Выбор merge tool


Слайд 76Разрешение конфликта в TortoiseMerge


Слайд 77.gitconfig
[alias]
co = checkout
ci = commit
st = status
br = branch
hist = log

--pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
type = cat-file -t
dump = cat-file –p
undo = reset --hard HEAD~1
sm = submodule

Git Alias


Слайд 78%USERPROFILE%\.bashrc
alias less='less -r'
# --show-control-chars: help showing Korean or accented characters
alias ls='ls

-F --color --show-control-chars'
alias ll='ls -l'
alias gs='git status '
alias ga='git add '
alias gb='git branch '
alias gc='git commit'
alias gd='git diff'
alias go='git checkout '
alias gk='gitk --all&'
alias gx='gitx --all'
alias got='git '
alias get='git '

Bash Alias


Слайд 79Если добавить C:\Program Files\Git в PATH, то git-bash будет доступен через Win+R

и адресную строку Проводника

Git Bash везде


Слайд 80.gitconfig
[core]
excludesFile

для репозитория
/.git/info/exclude
в любой папке и ее подпапках
.gitignore

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


Слайд 81выполнить в Git Bash ssh-keygen -t rsa -C “keyname”
найти открытый ключ %USERPROFILE%\.ssh\id_rsa.pub
Зарегистрировать

открытый ключ на сервере

OpenSSH


Слайд 82Git Extensions может использовать как PuTTY, так OpenSSH

открыть в Git Extensions

/Tools/PuTTY/Generate or import key
сгенерировать ключ SSH-2 RSA, нажав Generate, а затем поводив мышкой вплоть до генерации ключа
открытый ключ появится прямо в диалоговом окне – его следует сохранить и зарегистрировать на сервере
на диск следует сохранить файл с расширением .ppk
теперь при выполнении clone/fetch/push можно нажать Load SSH key и выбрать для использования закрытый ключ *.ppk

PuTTY SSH


Слайд 83может требоваться доверие к удаленному репозиторию

список доверенных
%USERPROFILE%\.ssh\known_hosts

для добавления в доверенные
выполнить в

Git Bash
ssh
e.g. ssh github.com
для подтверждения соединения ввести
yes

Доверенные узлы


Слайд 84Напоследок


Слайд 85Можно добавить изменения в уже сделанный коммит

git commit --amend

amend


Слайд 86Позволяет отобразить историю перемещений HEAD
Спасает, когда на нужный коммит не указывает

ни тэг, ни ветка

git reflog

247ed61 HEAD@{0}: commit: Fix bug
b7cad06 HEAD@{1}: checkout: moving from master to cool-feature
b7cab06 HEAD@{2}: clone: from https://github.com/awesome-application

reflog


Слайд 87Удаление недобавленных в git файлов

git clean

clean


Слайд 88reset
soft переносит HEAD и ветку

mixed + переписывает Index

hard + переписывает WD


Слайд 90Классный практический курс на русском
https://githowto.com/ru

Про remote branches
Глава в Pro Git

Про reset
https://git-scm.com/blog/2011/07/11/reset.html

Основные

фичи с картинками на английском
https://www.atlassian.com/pt/git/tutorial

Pro Git
https://git-scm.com/book/ru/v2

Чтиво


Слайд 91Git
https://git-scm.com/

Git Extensions
https://sourceforge.net/projects/gitextensions/

TortoiseGit
https://tortoisegit.org/

SourceTree
https://www.sourcetreeapp.com/
Кач


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика