Skip to content

Commit f4506e8

Browse files
committed
add advanced
1 parent 4d6a778 commit f4506e8

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

advanced.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Pokročilosti
2+
## Iteraktivní rebase
3+
Rebase je mocná věc, ale jeho interaktivní podoba je ještě mocnější.
4+
5+
Dovoluje vám měnit commity v historii.
6+
Zkusme si:
7+
```
8+
git rebase -i head~5
9+
```
10+
Nám zobrazí commitovou historii až do pátého nejaktuálnějšího.
11+
12+
S tím že - nejaktuálnější commit je dole a nejstarší nahoře. Zpracování rebase se děje odzhora dolů a tak se cherry-pickuje.
13+
14+
### Co se s tím dá dělat
15+
- měnit pořadí commitů: to se hodí, když máte ošklivou historii
16+
- přidávat commity: můžete prostě dopsat kamkoli `pick < commit id >` a commity se přidá
17+
- `drop` odebírat commity: buďto `pick` přepíšete na `drop` nebo jenom na `d` a commit zmizí z historie.
18+
- `edit`: přepište tam, kde chcete `pick` na `edit` nebo `e` a rebasování se zastaví na commitu a vy budete moc provést `ammend`
19+
- `reword`: přepište `pick` na `reword` nebo `r` a rebase zastaví a zobrazí vám editor pro změnu commit message commitu
20+
- `squash`: sloučit dva commity do jednoho - přesuňte si bordel commit tam, kam patří a pak ho přepište `pick` na `squash` nebo jenom `s` a commit se `ammendne` do commitu v seznamu nad ním tj. do staršího v historii a k tomu vám to nabídne změnu `commit message`
21+
- `fixup`: fixup je to samé, co squash, ale nevyzívá pro změnu commit message
22+
23+
Tohle je asi to nejmocnější na správu commitů, co Git nabízí, kdo s tím umí je za vodou... Jdeme zkoušet!!
24+
25+
Rebasování merge commitů je trošku složitější, neboť za sebou schovávají více commitů, aby rebase pochopil, že má brát merge commit jako jeden commit a né jako všechny, které jsou za ním - což dělá defaultně, tak musíme napsat přepínač `-p`.
26+
```
27+
git rebase -i -p head~10
28+
```

0 commit comments

Comments
 (0)