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

Содержание

Слайд 2

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

Слайд 3

Working directory

Слайд 4

Modification

Слайд 5

Commit

Commit hash
Commit message
Author
Date

Слайд 7

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

working directory

git add .

git commit

Слайд 10

checkout file or reset file

staging area (index)

repository

working directory

git checkout filename

git reset filename

Слайд 11

revert commit

git revert

Слайд 12

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

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

move & remove

Слайд 13

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 --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 difftool – разница с

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

diff

Слайд 16

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

help

Слайд 17

Метки и ветки

Слайд 19

checkout to revision

HEAD

git checkout

Слайд 20

tag

HEAD

v1.1

git tag “v1.1”

Слайд 21

branch

HEAD

master

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

Слайд 22

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

HEAD

master

CoolFeature

Слайд 23

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

HEAD

master

CoolFeature

Слайд 24

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

HEAD

master

CoolFeature

Слайд 25

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

Слайд 26

checkout branch

HEAD

master

CoolFeature

Слайд 27

checkout branch

HEAD

master

CoolFeature

git checkout CoolFeature

Слайд 28

create 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

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


=======

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

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

Слайд 71

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

Слайд 82

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
для добавления в доверенные
выполнить в 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

Слайд 88

reset

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

Чтиво

Слайд 91

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
Количество просмотров: 82
Количество скачиваний: 0