Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 21

GIT REPO TOPICS

Merge Prune

Reset hard Stage + Stash

Rebase Clone repo vs .bat file

Squash Pull request

Revert Reviewers + Work item link

Cherry Pick Organizations

Reset Soft New Repo


MERGE

F1a
F2a
F3a M
Commit 1 in Main (M)
MC1
M

F1a F1b M
F2a
F3a
Commit 2 in Main (M)
MC1 MC2
M

F1a F1b
F2a
F3a
Create New Branche “F” based on “M”
MC1 MC2
M M F
F
X
MERGE

F1a F1b F1c


F2a F2b F2c
F3a F3b F3c
Commit1 in F

MC1 MC2 FC1 FC2


Commit2 in F
M F
F1a F1b F1c
F2a F2b F2c
F3a F3b F3c
Merge F into M
MC1 MC2 FC1 FC2
F
M

F1a F1b F1c F1d


F2a F2b F2c
F3a F3b F3c
Commit3 in M

MC1 MC2 FC1 FC2 MC3


F M
MERGE

F1a F1b F1c F1d


F2a F2b F2c
F3a F3b F3c

Commit3 in F
MC1 MC2 FC1 FC2 MC3
M

F FC3
F3d

F1a F1b F1c F1d


F2a F2b F2c
F3a F3b F3c
M
Merge F into M
MC1 MC2 FC1 FC2 MC3

FC3 F
F3d

No new files!
Only Main moved ahead
If you delete F branch.. Only will be removed the pointer!
Real history represented
MERGE

Commit4 in F
F1a F1b F1c F1d
F2a F2b F2c F1e
F3a F3b F3c

M
MC1 MC2 FC1 FC2 MC3 MC4
FC3 FC4

F
F3d F1d2

Commit4 in M

F1a F1b F1c F1d


F2a F1e F1f
F2b F2c
F3a F3b F3c F2c
F3d
M
MC1 MC2 FC1 FC2 MC3 MC4
FC3 Merge F into M
FC4

F
F3d
F1d2
F2c
Possible new files!  STAGE  COMMIT F3d
Only Main moved ahead
Real history represented
Conflicts need to be solved
RESET HARD (don’t use in public branches)

F1a F1b F1c F1c F1d F1d F1e F1f


F2a F2a F2b F2c F2c F2c F2c F2c
F3a F3a F3b F3c F3c F3d F3d F3d
M
MC1 MC2 FC1 FC2 MC3 MC4
FC3 FC4

F
F1c
F2c F1d2
F3d F2c
F3d

F1a F1b F1c F1c F1d


F2a F2a F2b F2c F2c
F3a F3a F3b F3c F3c
M
MC1 MC2 FC1 FC2 MC3
FC3 FC4

F
F1c
F2c F1d2
F3d F2c
F3d

Try to use it only in temporal local branches (not in main) avoiding broken references in other cloned repos.
REBASE (don’t use in public branches)

F1a F1b F1c F1c


Rebase F onto M
F2a F2a F2b F2c
F3a F3a F3b F3c
Current state

MC1 MC2 FC1 FC2


M F

F1a F1b F1c F1c


F2a F2a F2b F2c
F3a F3a F3b F3c
Rebase F onto M
MC1 MC2 FC1 FC2
M F (s)

F1a F1b F1c F1c


F2a F2a F2b F2c
F3a F3a F3b F3c
Rebase M onto F
MC1 MC2 FC1 FC2
F
M (s)
REBASE (don’t use in public branches)

F1a F1b F1c F1c F1d


F2a F2a F2b F2c F2c
F3a F3a F3b F3c F3c

1C3C
MC1 MC2 FC1 FC2 MC3
7C45 M
F1c
F2c F FC3
F3d 6EA0

F1a F1b F1c F1c F1d


F1c
F2a F2a F2b F2c F2c
F2c
F3a F3a F3b F3c F3d
F3d
Rebase M onto F
MC1 MC2 FC1 FC2 FC3 MC3
F M (s)
6EA0 XXXX 1C3C WAS DELETED!!!
TEAM REFERENCES!!!

F1a F1b F1c F1c F1d


F1d
F2a F2a
F3a F3a
F2b F2c F2c F2c 1. Rebase F onto M
F3b F3c F3c F3d
2. Merge F into M
Rebase F onto M
MC1 MC2 FC1 FC2 3. Delete branch F (reference)
MC3 FC3
M F (s) 6EAO WAS DELETED!!!
TEAM REFERENCES!!!
1C3C C9EE
REBASE (don’t use in public branches)

F1a F1b F1c F1c F1d MC4 F1e


F1d
F2a F2a F2b F2c F2c F2c
F2c
F3a F3a F3b F3c F3d F3d D002
F3c
M
MC1 MC2 FC1 FC2 F F1e2 2252
MC3 FC3 F2c
F3d
FC4

F1a F1b F1c F1c F1d F1e2


F1d F1e3
F2a F2a F2b F2c F2c F2c
F2c F2c
F3a F3a F3b F3c F3d F3d
F3c F3d
Rebase M onto F
MC1 MC2 FC1 FC2 FC4
MC3 FC3 MC4

F M (s)
2252 XXXX

F1a F1b F1c F1c F1d F1e


F1d F1e3
F2a F2a F2b F2c F2c F2c
F2c F2c
F3a F3a F3b F3c F3d F3d
F3c F3d
Rebase F onto M
MC1 MC2 FC1 FC2 FC4
MC3 FC3 MC4
M F (s)
D002 A558

Rebase F onto M + Merge F into M


REBASE (don’t use in public branches)

F1a F1b F1c F1c F1d MC4 F1e


F1d
F2a F2a F2b F2c F2c F2c b09a
F2c
F3a F3a F3b F3c F3d F3d
F3c
M Rebase F onto M

MC1 MC2 FC1 FC2 MC3 FC3


F (s)
c9ee FC4 FC5 FC6

F1e2 F1f F1g


F2c F2c F2c
F3d F3d F3d
Conflicts: 133a 56cc 5fdf
- F1e vs F1e2  F1e
- F1e vs F1f  F1e
- F1e vs F1g  F1g

F1a F1b F1c F1c F1d


F1d F1e F1g**
F2a F2a F2b F2c F2c
F2c F2c F2c
F3a F3a F3b F3c F3d
F3c F3d F3d

MC1 MC2 FC1 FC2


F (s)
MC3 FC3 MC4 FC6
c9ee b09a 2a84

M
SQUASH (No public branches)

F1c F1d F1d F1e F1f


F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d

FC2 MC3 FC3 FC5 FC6


M F
1C3C C9EE 1F50 C677

F1c F1d F1d F1f


F2c F2c F2c F2c
F3c F3c F3d F3d

FC2 MC3 MFC6


FC3
M F
1C3C C9EE 312A
REBASE local Branch when pulling (global Git option in vs)

Delete remote branches …


REVERT (in F branch)

F1c F1d F1d F1e F1g F1h


F2c F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d F3d

FC2 MC3 FC3 MC4 FC6 FC7


c9ee b09a 2a84 c8c9

M F

F1c F1d F1d F1e F1g F1h F1c


F2c F2c F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d F3d F3d

FC2 MC3 FC3 MC4 FC6 FC7 FC8


c9ee b09a 2a84 c8c9 7b0e

M F

If Conflicts, git will ask for merge


CHERRY PICK

F1c F1d F1d F1e F1g F1h F1c


F2c F2c F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d F3d F3d

FC2 MC3 FC3 MC4 FC6 FC7 FC8


c9ee b09a 2a84 c8c9 7b0e

M F

F1c F1d F1d F1e F1g F1h F1c F1d


F2c F2c F2c F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d F3d F3d F3c

FC2 MC3 FC3 MC4 FC6 FC7 FC8 MC3


c9ee b09a 2a84 c8c9 7b0e 42c7

M F
If Conflicts, git will not ask for merge.
Version picked will head
RESET soft
F1c F1d F1d F1e F1g F1h F1c F1d
F2c F2c F2c F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d F3d F3d F3c

F: Reset soft FC6


FC2 MC3 FC3 MC4 FC6 FC7 FC8 MC3
c9ee b09a 2a84 c8c9 7b0e 42c7

M F

F1c F1d F1d F1e F1g F1h F1c F1d


F2c F2c F2c F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d F3d F3d F3c
F: Reset soft FC3
FC2 MC3 FC3 MC4 FC6 FC7 FC8 MC3
c9ee b09a 2a84 c8c9 7b0e 42c7

M F

F1c F1d F1d F1e F1g F1h F1c F1d


F2c F2c F2c F2c F2c F2c F2c F2c
F3c F3c F3d F3d F3d F3d F3d F3c

FC2 MC3 FC3 MC4 FC6 FC7 FC8 MC3


c9ee b09a 2a84 c8c9 7b0e 42c7

F M
PRUNE remote branches during fetch (global Git option in vs)
F1d F1e F1f
Commit All
STAGE Workdir commited stash Workdir stage
F2c F2c F2d
commited stash stage F3d F3d F3e
F1e F1f F1f
F2c F2d F2d
F1d F1e F3e FC3 MC4 MC5
F3d F3e
F2c F2c F c9ee b09a xxxx
F3d F3d b09a xxxx
M F (s)
FC3 MC4 Stage F1 +Commit All
commited stash Workdir stage F1d
c9ee b09a commited stash Workdir stage F1e F1f
F2c F2c F2c
F1e F1f F1f
M F (s) F2c F2d F2c F2d F3d F3d F3d
F3d F3e
F3d F3e
commited stash Workdir
F FC3
stage xxxx MC4 MC5
b09a
F1e c9ee b09a xxxx
F2c
M (s)
F3d M F
F
b09a
commited stash Workdir stage
commited stash Workdir stage
F1d F1f
F1e F1f
F2c F2d
F2c F2d
F3d
F3d F3e M F3e
checkout
c9ee
F
b09a
STASH
commited stash Workdir stage
F1d F1e F1d F1f
F2c F2c F2c F2d
F3d F3d F3d F3e
F
c9ee
FC3 MC4
c9ee b09a

M F (s)
commited stash Workdir stage

commited stash Workdir stage F1d


F2c
F1e F3d
F2c M
checkout
F3d c9ee

F
b09a

commited stash Workdir commited stash Workdir stage commited stash Workdir stage
stage
F1e F1f F1d F1f F1d F1f
F2c F2d F2c F2d F2c F2d
Pop
F3d F3e F3d
F3d F3e F F F3e
checkout
F c9ee c9ee
b09a
DEVOPS - Organizations

Repo1
Repo2
RepoN
Team1
Organization Project
Team2
(1) (1)
TeamN

Repo1
Repo2
RepoN
Team1
Organization Project
Team2
(1) (1)
TeamN

Repo1
Project Repo2
(2) RepoN
Team1
Team2
TeamN
BEST PRACTICE DEVOPS – Branch Politics
Pending….

PULL REQUEST
CREATE A REPO FROM EXISTING SOLUTION
CLONE REPO

.BAT FILES
CLONE MANUALLY
.. REFERENCES.. RIGHT FOLDERS

You might also like