Git Branches

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ тСстовый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ Π΅Π³ΠΎ learn_branches. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ создадим Ρ„Π°ΠΉΠ»Ρ‹ index.html ΠΈ style.css ΠΈ сдСлаСм ΠΊΠΎΠΌΠΌΠΈΡ‚:

# создадим Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π² Π½Ρ‘ΠΌ Git
mkdir learn_branches && cd learn_branches && git init && touch index.html style.css

git add . # добавляСт всС Ρ„Π°ΠΉΠ»Ρ‹, вмСсто этого ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ git add -A
git commit -m "Added initial commit" 

ПослС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° появилась Π²Π΅Ρ‚ΠΊΠ° main. Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

git branch # ΠΊΠΎΠΌΠ°Π½Π΄Π° для просмотра Π²Π΅Ρ‚ΠΎΠΊ
* main # наша основная Π²Π΅Ρ‚ΠΊΠ°, Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Ρ‹ Π²Π΅Ρ‚ΠΊΠ΅ сСйчас 

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚:

git add . && git commit -m "Added simple markup" 

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΡˆΠ°ΠΏΠΊΡƒ сайта. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ Π²Π΅Ρ‚ΠΊΡƒ feature/header:

pwd # посмотрСли, Π³Π΄Π΅ находимся
/Users/students-yandex/dev/learn_branches

git branch feature/header # создали Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
git branch # ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ, Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ находимся
feature/header # появилась новая Π²Π΅Ρ‚ΠΊΠ°
* main # Π½ΠΎ ΠΌΡ‹ ΠΏΠΎΠΊΠ° находимся Π² Π²Π΅Ρ‚ΠΊΠ΅ main 

Π’Π΅Ρ‚ΠΊΡƒ создали, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΌΡ‹ находимся Π² Π²Π΅Ρ‚ΠΊΠ΅ main. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π² Π²Π΅Ρ‚ΠΊΡƒ feature/header, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git checkout feature/header:

git checkout feature/header # ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π² Π²Π΅Ρ‚ΠΊΡƒ feature/header
git branch # ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ
* feature/header
main 

МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ сразу ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π΅Ρ‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git checkout -b feature/header # создали ΠΈ сразу ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π² Π²Π΅Ρ‚ΠΊΡƒ feature/header 

ОбъСдинСниС Π²Π΅Ρ‚ΠΎΠΊ

Π¨Π°ΠΏΠΊΠ° сайта Π³ΠΎΡ‚ΠΎΠ²Π°, Π΅Ρ‘ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ с Π²Π΅Ρ‚ΠΊΠΎΠΉ main. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ, ΠΈΠ»ΠΈ Β«ΡΠΌΡ‘Ρ€Π΄ΠΆΠΈΡ‚ΡŒΒ» Π²Π΅Ρ‚ΠΊΠΈ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π² Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΡƒΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ измСнСния. Π’ нашСм случаС это Π²Π΅Ρ‚ΠΊΠ° main:

git checkout main # ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π² main 

ВсС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π²Π΅Ρ‚ΠΊΡƒ main. Π­Ρ‚ΠΎ дСлаСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git merge feature/header:

git merge feature/header
Updating ffd42e2..fe581f6
Fast-forward
 index.html | 4 ++--
 style.css  | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-) 

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Π΅Ρ‚ΠΊΠ° Β«Π²Π»ΠΈΡ‚Π°Β» Π² main, Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Для этого ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π΅Ρ‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git checkout main ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git branch с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -D ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ:

# ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ, Π³Π΄Π΅ ΠΌΡ‹
git branch
feature/header
git checkout main

# ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΡƒ feature/header
git branch -D feature/header
Deleted branch feature/header (was fe581f6). 

#git