đ Git - Switching Branches (āĻŦā§āϰāĻžāĻā§āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ) â
Git āĻ āĻāĻžāĻ āĻāϰāĻžāϰ āϏāĻŽā§, āĻāĻĒāύāĻŋ āĻāĻ āĻŦā§āϰāĻžāĻā§āĻ āĻĨā§āĻā§ āĻāϰā§āĻ āĻŦā§āϰāĻžāĻā§āĻā§ āϝā§āϤ⧠āĻāĻžāĻāϞ⧠switch
āĻŦāĻž checkout
āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āĻāϤ⧠āĻāĻĒāύāĻŋ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻāĻžāĻā§āϰ āĻāĻĒāϰ āĻĒā§āϰāĻāĻžāĻŦ āύāĻž āĻĢā§āϞā§āĻ āύāϤā§āύ āĻāĻžāĻ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻŦāĻž āĻ
āύā§āϝ āĻā§āύ āĻ
āĻāĻļā§ āĻĢāĻŋāϰ⧠āϝā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
đ ā§§. āύāϤā§āύ āĻĒāĻĻā§āϧāϤāĻŋ: git switch
â
Git 2.23 āĻĨā§āĻā§ git switch
āĻāĻŦāĻ git restore
āύāĻžāĻŽā§āϰ āĻāĻŽāĻžāύā§āĻĄ āϝā§āĻā§āϤ āĻšā§ā§āĻā§āĨ¤ āĻāĻā§āϞ⧠checkout
āĻāϰ āĻā§ā§ā§ āϏāĻšāĻāĻāĻžāĻŦā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻžāĨ¤
â āĻŦā§āϰāĻžāĻā§āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ: â
git switch branch-name
git switch branch-name
â āύāϤā§āύ āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰ⧠āϏā§āϝā§āĻāĻ āĻāϰāĻž: â
git switch -c new-branch-name
git switch -c new-branch-name
đ§ ⧍. āĻĒā§āϰāĻžāύ⧠āĻĒāĻĻā§āϧāϤāĻŋ: git checkout
â
git checkout branch-name
git checkout branch-name
āĻāĻāĻŋ āĻāĻāύāĻ āĻ āύā§āĻ āĻāĻžā§āĻāĻžā§ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§ āĻāĻŦāĻ backward-compatibleāĨ¤
đ āĻāĻĻāĻžāĻšāϰāĻŖ ā§§: main āĻŦā§āϰāĻžāĻā§āĻā§ āĻĢāĻŋāϰ⧠āϝāĻžāĻā§āĻž â
git switch main
# āĻ
āĻĨāĻŦāĻž
git checkout main
git switch main
# āĻ
āĻĨāĻŦāĻž
git checkout main
đ§Ē āĻāĻĻāĻžāĻšāϰāĻŖ ⧍: āĻāĻāĻāĻŋ āύāϤā§āύ āĻĢāĻŋāĻāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻā§ āϝāĻžāĻā§āĻž â
git switch feature/login-ui
git switch feature/login-ui
⨠āĻāĻĻāĻžāĻšāϰāĻŖ ā§Š: āύāϤā§āύ āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰ⧠āϏāϰāĻžāϏāϰāĻŋ āϏā§āϝā§āĻāĻ āĻāϰāĻž â
git switch -c feature/user-settings
# āĻā§āĻĄ āϞāĻŋāĻā§āύ
git add .
git commit -m "Add user settings page"
git switch -c feature/user-settings
# āĻā§āĻĄ āϞāĻŋāĻā§āύ
git add .
git commit -m "Add user settings page"
đ ī¸ āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ē: āĻŦāĻžāĻ āĻĢāĻŋāĻā§āϏ āĻāϰāĻžāϰ āĻāύā§āϝ āύāϤā§āύ āĻŦā§āϰāĻžāĻā§āĻā§ āϝāĻžāĻā§āĻž â
git switch -c fix/404-error
# āĻŦāĻžāĻ āĻĢāĻŋāĻā§āϏ āĻāϰā§āύ
git commit -am "Fix 404 error in route"
git switch -c fix/404-error
# āĻŦāĻžāĻ āĻĢāĻŋāĻā§āϏ āĻāϰā§āύ
git commit -am "Fix 404 error in route"
đšī¸ āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ģ: āĻŦāϰā§āϤāĻŽāĻžāύ āĻŦā§āϰāĻžāĻā§āĻ āĻā§āĻ āĻāϰāĻž â
git branch
git branch
*
āĻĻāĻŋā§ā§ āĻāĻĒāύāĻŋ āĻā§āύ āĻŦā§āϰāĻžāĻā§āĻā§ āĻāĻā§āύ āϤāĻž āĻŦā§āĻāĻž āϝāĻžāĻŦā§āĨ¤
đ āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ŧ: āĻāĻāĻāĻŋ āĻā§āϝāĻžāĻ āĻŦāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŽāĻŋāĻā§ āĻā§āĻāĻāĻāĻ āĻāϰāĻž (Detached HEAD) â
git checkout v1.0.0
# āĻ
āĻĨāĻŦāĻž
git checkout 83f24e6
git checkout v1.0.0
# āĻ
āĻĨāĻŦāĻž
git checkout 83f24e6
â ī¸ āĻāĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻŦā§āϰāĻžāĻā§āĻā§ āύāύ, HEAD detached āĻ āĻŦāϏā§āĻĨāĻžā§ āĻāĻā§āύāĨ¤ āĻā§āύ āĻāĻŽāĻŋāĻ āĻāϰāϞ⧠āϤāĻž āĻāϞāĻžāĻĻāĻž āĻĨāĻžāĻāĻŦā§āĨ¤
đĄ Detached HEAD āĻĨā§āĻā§ āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ â
git switch -c hotfix/detached-work
git switch -c hotfix/detached-work
đ āĻāĻĻāĻžāĻšāϰāĻŖ ā§: āĻāĻā§āϰ āĻŦā§āϰāĻžāĻā§āĻā§ āĻĢāĻŋāϰ⧠āϝāĻžāĻā§āĻž â
git switch -
git switch -
āĻāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāĻā§āϰ āĻŦā§āϰāĻžāĻā§āĻā§ āĻĢāĻŋāϰāĻŋā§ā§ āύāĻŋā§ā§ āϝāĻžā§ (āĻāĻ āϧāĻžāĻĒ āĻĒā§āĻāύā§)āĨ¤
đ āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ž: āϏāĻŦ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āϤāĻžāϞāĻŋāĻāĻž āĻĻā§āĻāĻž â
git branch
git branch
āϞā§āĻāĻžāϞ āĻŦā§āϰāĻžāĻā§āĻ āĻĻā§āĻāĻžā§āĨ¤
git branch -a
git branch -a
āϞā§āĻāĻžāϞ + āϰāĻŋāĻŽā§āĻ āĻāĻā§ āĻŦā§āϰāĻžāĻā§āĻ āĻĻā§āĻāĻžā§āĨ¤
đĢ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻžāĻ āύāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ? â
git switch branch-name
git switch branch-name
â ī¸ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻŦā§āϰāĻžāĻā§āĻā§ āĻāύāĻāĻŽāĻŋāĻā§āĻĄ āĻā§āĻā§āĻ āĻĨāĻžāĻā§, Git āĻāĻĒāύāĻžāĻā§ āϏā§āϝā§āĻāĻ āĻāϰāϤ⧠āĻĻā§āĻŦā§ āύāĻžāĨ¤
āϏāĻŽāĻžāϧāĻžāύ ā§§: āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻā§āϝāĻžāĻļ āĻāϰā§āύ â
git stash
git switch branch-name
git stash
git switch branch-name
āϏāĻŽāĻžāϧāĻžāύ ⧍: āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāĻŽāĻŋāĻ āĻāϰā§āύ â
git add .
git commit -m "WIP: incomplete work"
git switch branch-name
git add .
git commit -m "WIP: incomplete work"
git switch branch-name
đ§ Best Practices â
- â āĻāĻžāĻ āĻļā§āϰā§āϰ āĻāĻā§ āϏāĻ āĻŋāĻ āĻŦā§āϰāĻžāĻā§āĻā§ āĻāĻā§āύ āĻāĻŋ āύāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻšā§āύ
- â āĻŦā§āϰāĻžāĻā§āĻ āύāĻžāĻŽ āĻ āϰā§āĻĨāĻŦā§āϧāĻ āĻĻāĻŋāύ (feature/, fix/, docs/, refactor/)
- â
āύāϤā§āύ āĻŦā§āϰāĻžāĻā§āĻā§ āĻāĻžāĻ āĻļā§āϰ⧠āĻāϰāĻžāϰ āϏāĻŽā§
git switch -c
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ - â
main
āĻŦāĻžmaster
āĻŦā§āϰāĻžāĻā§āĻā§ āϏāϰāĻžāϏāϰāĻŋ āĻāĻžāĻ āĻāϰāĻŦā§āύ āύāĻž - â
āĻŦāĻžāϰāĻŦāĻžāϰ
git branch
āĻāĻžāϞāĻŋā§ā§ āĻŦā§āϰāĻžāĻā§āĻ āĻ āĻŦāϏā§āĻĨāĻž āĻĻā§āĻā§āύ