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

Содержание

Слайд 2

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

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

Слайд 3

Working directory

Working directory

Слайд 4

Modification

Modification

Слайд 5

Commit Commit hash Commit message Author Date

Commit

Commit hash
Commit message
Author
Date

Слайд 6

History

History

Слайд 7

Repository repository + working directory test/.git – repository + working directory test.git – bare repository

Repository

repository + working directory

test/.git – repository + working directory
test.git – bare

repository
Слайд 8

Внесение изменений

Внесение изменений

Слайд 9

add to staging area and commit staging area (index) repository

add to staging area and commit

staging area (index)

repository

working directory

git add .

git

commit
Слайд 10

checkout file or reset file staging area (index) repository working

checkout file or reset file

staging area (index)

repository

working directory

git checkout filename

git reset

filename
Слайд 11

revert commit git revert

revert commit

git revert

Слайд 12

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

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

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

move & remove

Слайд 13

get status of working directory # Edit hello.py git status

get 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)
Слайд 14

log history git log -n git log --oneline git log

log 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 
Слайд 15

git diff – разница между working directory и index git

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

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

diff

Слайд 16

git help commit git commit --help git commit -h help

git help commit
git commit --help
git commit -h

help

Слайд 17

Метки и ветки

Метки и ветки

Слайд 18

HEAD HEAD

HEAD

HEAD

Слайд 19

checkout to revision HEAD git checkout

checkout to revision

HEAD

git checkout

Слайд 20

tag HEAD v1.1 git tag “v1.1”

tag

HEAD

v1.1

git tag “v1.1”

Слайд 21

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

branch

HEAD

master

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

Слайд 22

Развитие фичи HEAD master CoolFeature

Развитие фичи

HEAD

master

CoolFeature

Слайд 23

Развитие фичи HEAD master CoolFeature

Развитие фичи

HEAD

master

CoolFeature

Слайд 24

Развитие фичи HEAD master CoolFeature

Развитие фичи

HEAD

master

CoolFeature

Слайд 25

Что будет при коммите?

Что будет при коммите?

Слайд 26

checkout branch HEAD master CoolFeature

checkout branch

HEAD

master

CoolFeature

Слайд 27

checkout branch HEAD master CoolFeature git checkout CoolFeature

checkout branch

HEAD

master

CoolFeature

git checkout CoolFeature

Слайд 28

create and checkout branch HEAD git checkout –b CoolFeature HEAD CoolFeature

create and checkout branch

HEAD

git checkout –b CoolFeature

HEAD

CoolFeature

Слайд 29

HEAD master merge

HEAD

master

merge

Слайд 30

HEAD master CoolFeature Fast Forward Merge

HEAD

master

CoolFeature

Fast Forward Merge

Слайд 31

HEAD master CoolFeature Fast Forward Merge

HEAD

master

CoolFeature

Fast Forward Merge

Слайд 32

HEAD master CoolFeature rebase

HEAD

master

CoolFeature

rebase

Слайд 33

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

HEAD

master

CoolFeature

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

rebase

Слайд 34

HEAD master CoolFeature cherry-pick

HEAD

master

CoolFeature

cherry-pick

Слайд 35

HEAD master CoolFeature cherry-pick git cherry-pick

HEAD

master

CoolFeature

cherry-pick

git cherry-pick

Слайд 36

HEAD master CoolFeature branch delete

HEAD

master

CoolFeature

branch delete

Слайд 37

HEAD master branch delete git branch –d “CoolFeature”

HEAD

master

branch delete

git branch –d “CoolFeature”

Слайд 38

contact : email.support@github.com ======= please contact us at support@github.com >>>>>>> iss53:index.html Конфликт

<<<<<<< HEAD:index.html


=======

>>>>>>>

iss53:index.html

Конфликт

Слайд 39

Reflog, gc

Reflog, gc

Слайд 40

Операции над репозиториями

Операции над репозиториями

Слайд 41

init

init

Слайд 42

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

clone

git clone https://repos/repo.git

Слайд 43

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

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

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

master

origin/master

origin/f1

Remote branches

Слайд 46

master origin/master fetch

master

origin/master

fetch

Слайд 47

origin/master master fetch

origin/master

master

fetch

Слайд 48

master origin/master origin/f1 fetch git fetch

master

origin/master

origin/f1

fetch

git fetch

Слайд 49

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

master

origin/master

origin/f1

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

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

Что делать?

Слайд 50

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

origin/f1


git checkout -b f1 ?

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

Слайд 51

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

origin/f1

f1

git checkout -b f1 ?


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

Слайд 52

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

origin/f1

f1


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

Начинаем править

Слайд 53

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

origin/f1

f1


git ?

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

Слайд 54

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

origin/f1

f1


git ?

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

Слайд 55

$ git branch -vv f1 7e424c3 [origin/f1] master 1ae2a45 [origin/master]

$ 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 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

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

origin/master

master

git push

#3 ЛОКАЛЬНЫЕ ИЗМЕНЕНИЯ

push

Слайд 59

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

master

origin/master

git push

push

#3 ЛОКАЛЬНЫЕ ИЗМЕНЕНИЯ

Слайд 60

master origin/master #2 Удаленные изменения … Что делать?

master

origin/master

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


Что делать?

Слайд 61

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

master

origin/master


git merge origin/master ?

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

Слайд 62

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

master

origin/master


git merge origin/master ?

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

Слайд 63

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

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

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

master

origin/master

git pull origin =
git fetch + git merge origin/

#2 УДАЛЕННО УЕХАЛО

pull

Слайд 66

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

origin/master

f2

#1 Нет upstream

Как начать фичу?

Слайд 67

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

origin/master

f2

origin/f2

git push ?

#4 Нет upstream

Слайд 68

origin/master f2 origin/f2 git push : git push origin f2:f2

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 : Удаление ветки

Локально
git branch -d
Удаленно
git push origin --delete
git push origin :

Удаление

ветки
Слайд 70

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

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

Слайд 71

git config --system %ProgramFiles%\Git\mingw64\etc\gitconfig git config --global %USERPROFILE%\.gitconfig git config /.git/config Конфигурирование

git 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

.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

.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 Выбор текстового редактора

.gitconfig
[core]
editor = notepad
будет использоваться для ввода commit message

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

Слайд 75

.gitconfig [merge] tool = TortoiseMerge позволяет решать конфликты Выбор merge tool

.gitconfig
[merge]
tool = TortoiseMerge
позволяет решать конфликты

Выбор merge tool

Слайд 76

Разрешение конфликта в TortoiseMerge

Разрешение конфликта в TortoiseMerge

Слайд 77

.gitconfig [alias] co = checkout ci = commit st =

.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

%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 будет доступен

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

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

Git Bash везде

Слайд 80

.gitconfig [core] excludesFile для репозитория /.git/info/exclude в любой папке и ее подпапках .gitignore Игнорирование файлов

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

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

Слайд 81

выполнить в Git Bash ssh-keygen -t rsa -C “keyname” найти

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

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

OpenSSH

Слайд 82

Git Extensions может использовать как PuTTY, так OpenSSH открыть в

Git 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 для

может требоваться доверие к удаленному репозиторию
список доверенных
%USERPROFILE%\.ssh\known_hosts
для добавления в доверенные
выполнить в

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

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

Слайд 84

Напоследок

Напоследок

Слайд 85

Можно добавить изменения в уже сделанный коммит git commit --amend amend

Можно добавить изменения в уже сделанный коммит
git commit --amend

amend

Слайд 86

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

Позволяет отобразить историю перемещений 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

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

clean

Слайд 88

reset soft переносит HEAD и ветку mixed + переписывает Index hard + переписывает WD

reset

soft переносит HEAD и ветку
mixed + переписывает Index
hard + переписывает WD

Слайд 89

flow

flow

Слайд 90

Классный практический курс на русском https://githowto.com/ru Про remote branches Глава

Классный практический курс на русском
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

Чтиво

Слайд 91

Git https://git-scm.com/ Git Extensions https://sourceforge.net/projects/gitextensions/ TortoiseGit https://tortoisegit.org/ SourceTree https://www.sourcetreeapp.com/ Кач

Git
https://git-scm.com/
Git Extensions
https://sourceforge.net/projects/gitextensions/
TortoiseGit
https://tortoisegit.org/
SourceTree
https://www.sourcetreeapp.com/

Кач

Имя файла: Git.-Working-directory.pptx
Количество просмотров: 94
Количество скачиваний: 0