GIT VIZUALIZATION
1
INTRODUCTION
WHY?
2
LOCAL
git commit
3
LOCAL
git commit
3
LOCAL
git checkout -b xyz
4
abc
HEAD
LOCAL
git checkout -b xyz
4
abc
HEAD
abc
HEAD
xyz
LOCAL
git checkout -b xyz
4
abc
HEAD
abc
HEAD
xyz
xyz
HEAD
LOCAL
git revert HEAD
5
LOCAL
git revert HEAD
5
LOCAL
git revert HEAD
5
ADDITIVE
multi-user SAFE
ORIGIN (server) LOCAL
ORIGIN (server)
git push ([-u] origin abc:abc)
6
ORIGIN (server) LOCAL
ORIGIN (server)
git push ([-u] origin abc:abc)
6
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
▸ -u | --set-upstream update config of the branch
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
▸ -u | --set-upstream update config of the branch
▸ git push current branch to its configured remote
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
▸ -u | --set-upstream update config of the branch
▸ git push current branch to its configured remote
▸ git push abc local abc to its default remote tracking branch
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
▸ -u | --set-upstream update config of the branch
▸ git push current branch to its configured remote
▸ git push abc local abc to its default remote tracking branch
▸ git push origin abc local abc to default remote abc branch
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
▸ -u | --set-upstream update config of the branch
▸ git push current branch to its configured remote
▸ git push abc local abc to its default remote tracking branch
▸ git push origin abc local abc to default remote abc branch
▸ git push heroku feat:master feat onto heroku remote master
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
▸ -u | --set-upstream update config of the branch
▸ git push current branch to its configured remote
▸ git push abc local abc to its default remote tracking branch
▸ git push origin abc local abc to default remote abc branch
▸ git push heroku feat:master feat onto heroku remote master
▸ git push :feat delete default remote feat branch
7
GIT VIZUALIZATION
DIGRESSING ON GIT-PUSH
▸ git push origin abc:abc
▸ -u | --set-upstream update config of the branch
▸ git push current branch to its configured remote
▸ git push abc local abc to its default remote tracking branch
▸ git push origin abc local abc to default remote abc branch
▸ git push heroku feat:master feat onto heroku remote master
▸ git push :feat delete default remote feat branch
▸ git push : push to default remote all the branches […]
7
LOCAL
git merge abc (develop)
8
LOCAL
git merge abc (develop)
8
LOCAL
git merge abc (develop)
9
LOCAL
git merge abc (develop)
9
LOCAL
git merge abc (develop)
9
FAST FORWARD
LOCAL
git merge --no-ff abc (develop)
10
LOCAL
git merge --no-ff abc (develop)
10
ORIGIN (server) LOCAL
LOCAL
git fetch
11
develop
develop
origin/

develop
ORIGIN (server) LOCAL
LOCAL
git fetch
11
develop
develop
origin/

develop
origin/

develop
develop
ORIGIN (server) LOCAL
LOCAL
git fetch
11
develop
develop
origin/

develop
origin/

develop
develop
ORIGIN (server) LOCAL
LOCAL
git fetch
12
develop
develop
origin/

develop
origin/

develop
develop
ORIGIN (server) LOCAL
ORIGIN (server)
git push -f (origin develop)
13
ORIGIN (server) LOCAL
ORIGIN (server)
git push -f (origin develop)
13
origin/

develop
origin/
abc
ORIGIN (server) LOCAL
ORIGIN (server)
git push -f (origin develop)
13
OVERWRITE
origin/

develop
origin/
abc
ORIGIN (server) LOCAL
LOCAL
git pull (fetch + merge)
14
ORIGIN (server) LOCAL
LOCAL
git pull (fetch + merge)
14
origin/

develop
develop
ORIGIN (server) LOCAL
LOCAL
git pull (fetch + merge)
14
origin/

develop
develop
ORIGIN (server) LOCAL
LOCAL
git pull
15
develop
origin/

develop
ORIGIN (server) LOCAL
LOCAL
git pull
15
develop
origin/

develop
ORIGIN (server) LOCAL
LOCAL
git pull
15
develop
origin/

develop
ORIGIN (server) LOCAL
LOCAL
git pull
15
develop
origin/

develop
ORIGIN (server) LOCAL
LOCAL
git pull --rebase
16
ORIGIN (server) LOCAL
LOCAL
git pull --rebase
16
ORIGIN (server) LOCAL
LOCAL
git pull --rebase
16
FETCH +

REBASE
ORIGIN (server) LOCAL
LOCAL
git pull --rebase
17
ORIGIN (server) LOCAL
LOCAL
git pull --rebase
17
ORIGIN (server) LOCAL
LOCAL
git pull --rebase
17
FLATTENED
ORIGIN (server) LOCAL
LOCAL
git pull --rebase
17
FLATTENED
CONFLICTS

AGAIN
ORIGIN (server) LOCAL
LOCAL
git reset --hard origin/develop
18
develop
origin/

develop
def
ORIGIN (server) LOCAL
LOCAL
git reset --hard origin/develop
18
develop
origin/

develop
def
develop
origin/

develop
def
ORIGIN (server) LOCAL
LOCAL
git reset --hard origin/develop
18
develop
origin/

develop
def
develop
origin/

develop
def
not easily

accessible
ORIGIN (server) LOCAL
LOCAL
git reset --hard origin/develop
18
develop
origin/

develop
def
develop
origin/

develop
def
not easily

accessible
SHA1

develop@{1}
ORIGIN (server) LOCAL
LOCAL
git reset --hard origin/develop
18
develop
origin/

develop
def
develop
origin/

develop
def
not easily

accessible
SHA1

develop@{1}
will be garbage

collected
ORIGIN (server) LOCAL
LOCAL
git reset --hard origin/develop
18
develop
origin/

develop
def
develop
origin/

develop
def
LOCAL

CHANGES

LOST
not easily

accessible
SHA1

develop@{1}
will be garbage

collected
ORIGIN (server) LOCAL
LOCAL
git branch -f develop origin/develop
19
develop
origin/

develop
def
develop
origin/

develop
def
LOCAL

CHANGES

LOST
not easily

accessible
SHA1

develop@{1}
will be garbage

collected
ORIGIN (server) LOCAL
LOCAL
git rebase origin/develop
20
develop
ORIGIN (server) LOCAL
LOCAL
git rebase origin/develop
20
develop
develop
ORIGIN (server) LOCAL
LOCAL
git rebase origin/develop
20
origin/

develop
develop
develop
ORIGIN (server) LOCAL
LOCAL
git rebase origin/develop
21
develop
origin/

develop
def
ORIGIN (server) LOCAL
LOCAL
git rebase origin/develop
21
develop
origin/

develop
develop
origin/

develop
def
def
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
LOCAL
git rebase -i develop
22
23REBASE WITH AN ANCHOR
23REBASE WITH AN ANCHOR
23REBASE WITH AN ANCHOR
23REBASE WITH AN ANCHOR
git rebase --onto …
23REBASE WITH AN ANCHOR
git rebase --onto …
23REBASE WITH AN ANCHOR
git rebase --onto …
24
24
ROTI
26
Grégory Bataille
@gregbfiveten
Pix4D
Back end engineer
Photogrammetry

Git vizualiation - understand what you do