์ด ๊ธ์ https://learngitbranching.js.org/?locale=ko ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ฐ์ฌ์ก์ต๋๋ค.
git status ๋ช ๋ น์ด๋ ์์ ๋๋ ํ ๋ฆฌ(working directory)์ ์คํ ์ด์ง ์์ญ(staging area)์ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด์ ์ฌ์ฉ
์ด๋ฅผ ์๊ธฐ์ํด git status๋ฅผ ํ๋ฒ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์.
ํ์ฌ git status๋ฅผ ํ์ธํด ๋ณด๋ฉด Untracked file์ด๋ผ๋ ์์ญ์ด ๋ณด์ผ๊ฒ์ ๋๋ค. ๊ณ ์น ํ์ผ์ด ์์ด ํ์ฌ๋ ์ ๊ฒ ๋ฐ์ ๋จ์ง ์์ง๋ง ์๋ 3๊ฐ์ง ์์ญ์ด ์๋ค.
- Changes to be committed: ์ด ์์ญ์ ์คํ ์ด์ง ์์ญ์ ๋์ด๊ฐ ์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ณด์ฌ์ค๋๋ค.
- Changes not staged for commit: ์ด ์์ญ์ ์์ง ์ํน ๋๋ ํ ๋ฆฌ์ ์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ณด์ฌ์ค๋๋ค.
- Untracked files: ์ด ์์ญ๋ ์์ง ์ํน ๋๋ ํ ๋ฆฌ์ ์๋ ์์ง ํ ๋ฒ๋ ํด๋น Git ์ ์ฅ์๊ฐ ๊ด๋ฆฌํ ์ ์ด ์๋ ์๋ก์ด ํ์ผ์ ๋ณด์ฌ์ค๋๋ค.
์คํ ์ด์ง ์์ญ, ์ํน ๋๋ ํ ๋ฆฌ๋ผ๋ ๋จ์ด๋ฅผ ๊ฐ๋ตํ ์ง๊ณ ๋์ด๊ฐ๊ฒ ๋ค.
์ํน ๋๋ ํ ๋ฆฌ๋ ๋ด๊ฐ ์์ ํ๊ณ ์๋ ํ์ผ์ด ์๋ ํด๋๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ค์ ๋งํด ์์ ์ด ์์ ํ๋ ์์ญ์ด ์ํน ๋๋ ํ ๋ฆฌ.
์คํ ์ด์ง ์์ญ์ด๋ ์ปค๋ฐ์ ํ๊ธฐ์ํด git add ๋ช ๋ น์ด๋ฅผ ํตํด ์ถ๊ฐ๋ ํ์ผ๋ค์ด ์๋ ์์ญ
git add ๋ช ๋ น์ด๋ ์ปค๋ฐ ํ๊ธฐ ๊น์ง์ ๋ณ๊ฒฝ๋ถ๋ถ์ ๊ธฐ๋กํ๋ ๊ฒ์ด๋ค. add ๋ช ๋ น์ด๋ ์ ์ฅํ๋ ๊ฒ์ด ์๋ ๊ทธ์ ์ด๋ ์ ๋ ๋ฐ๊ฟจ๋์ง ๊ธฐ๋กํ๋ ๊ฒ์ผ๋ก ์๋ฌด๋ฆฌ ๋ง์ add ๋ช ๋ น์ด๋ฅผ ์คํํด๋ Git ์ ์ฅ์์ ์ด๋ค ์ํฅ๋ ์ฃผ์ง ์๋๋ค.
๋จผ์ ์ฒซ๋ฒ ์งธ๋ ์์ ํ ๊ฒ์ ์ผ๋ถํ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํ๊ณ ์ถ์ ๋์ด๋ค.
git add <ํ์ผ>
๋ค์๊ณผ ๊ฐ์ด ์ผ๋ถ๋ง ์ถ๊ฐ ํ๊ณ ์ถ์ ๋๋ git add ๋ค์ ์ง์ ์ ์ผ๋ก ์ถ๊ฐํ ๊ฒ์ ์ ๋ ฅํด ์ฃผ๋ฉด ๋๋ค.
git add .
์ด๋ ๊ฒ add ๋ค์ .์ ์ ๊ฒ๋๋ฉด ๋ชจ๋ ์์ ์ฌํญ์ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํ๋ค๋ ๊ฒ์ด๋ค.
git add -A
๊ทธ๋ฆฌ๊ณ git add .๊ณผ ๋น์ทํ -A๊ฐ ์์ต๋๋ค. ์ด ๋๊ฐ์ง์ ์ฐจ์ด์ ์ ์์ ๋๋ ํ ๋ฆฌ์ ์์ ์ฌํญ์ ํฌํจํ๋ ์ํ๋ ์ด๋ค. git add . ์ ํ์ฌ ๋๋ ํ ๋ฆฌ ํ์ ํด๋๋ก๋ง ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํ์ง๋ง git add -A๋ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ถํฐ ๋ชจ๋ ์ถ๊ฐํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๋ง์ง๋ง์ผ๋ก -p ์์ฑ์ด ์๋ค
git add -p
์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด, ๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ํฐ๋ฏธ๋์์ ์ง์ ๋์ผ๋ก ํ๋์ฉ ํ์ธํ๋ฉด์ ์คํ ์ด์ง ์์ญ์ผ๋ก ๋๊ธฐ๊ฑฐ๋ ๋๋ ์ ์ธํ ์๊ฐ ์๋ค.
๊ฐ๋จํ ์ปค๋ฐ์ด๋ git add ๋ช ๋ น์ด๋ฅผ ํตํ ๊ธฐ๋ก์ ์ ์ฅํ๋ ํ์๋ผ๊ณ ์๊ฐํ๋ค.
ํ์ฌ ๊ฐ๋ฅดํค๊ณ ์๋ ์ปค๋ฐ, HEAD๋ฅผ c0, ์ฆ ์ด๊ณณ์ main ๋ธ๋์น๋ผ๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ๋ง์ผ ์ด ๊ณณ์์ ์ฝ๋๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ์๊ฐํด ๋ณด์.
const a = "a";๊ทธ๋ฐ๋ฐ ์ํน ๋๋ ํ ๋ฆฌ์์ ์ฝ๋๋ฅผ ์์
const a = "a";
console.log(a);๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ git add .์ผ๋ก ์คํ ์ด์ง ์์ญ์ผ๋ก ๋๊ฒผ๋ค๊ณ ํด๋ด ์๋ค. ์ด ๋ ์ ํฌ๋ git commit ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด๋ค.
git commit ๋ช ๋ น์ด๋ git ์ ์ฅ์์ ๊ธฐ๋กํ๋ ํ์๋ก git add์๋ ๋ค๋ฅด๊ฒ ์ ์ฅ์์ ์ํฅ์ ์ค๋ค.
git commit
์ด๋ ๊ฒ ๋๋ค๋ฉด HEAD, c0์์ c1์ด๋ผ๋ ์๋ก์ด ์ปค๋ฐ์ด ๊ธฐ๋ก ๋๋ ๊ฒ์ด๋ค.
๋น์ฐํ ์๋ฆฌ์ง๋ง ์ด ๋ c0์ c1, ๋ ์ปค๋ฐ์ ๋ด์ฉ์ ๋ค๋ฅด๋ค. c0๋ ์๋ ์ ํ์๋ ๋ด์ฉ, c1๋ ๋ฐ๊พธ๊ณ ๋ ํ ๊ธฐ๋กํ ๋ด์ฉ
๊ทธ๋ฌ๋ฉด ์ด์ commit ๋ช ๋ น์ด์ ์ต์ ์ ๋ํด ์์๋ณด์
git commit -m "๋ฉ์ธ์ง"
git commit -a
git commit -am "๋ฉ์ธ์ง"
์ต์ ์ด ๋งค์ฐ ๋ง๊ธฐ์ ๋ํ์ ์ธ ๊ฒ๋ง ์ ์ด๋์๋ค.
-m ์ต์ ๋ถํฐ ์์๋ณด์๋ฉด massage๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ๋ก "๋ฉ์ธ์ง"์ ํจ๊ป ๊ธฐ๋กํ๋ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ์์ ์ฝ๋์ฒ๋ผ ์ฝ์๋ก๊ทธ๋ฅผ ์ถ๊ฐ ํ์์ผ๋ฏ๋ก git commit -m "add: console.log"๋ผ๊ณ ํ๋ค๋ฉด ์ด ๋ฉ์ธ์ง์ ํจ๊ป ๊ธฐ๋ก๋๋ ๊ฒ์ ๋๋ค. ์ด ์ปค๋ฐ์ด ์ด๋ค ์ปค๋ฐ์ธ์ง ์์๋ณด๊ธฐ ์ฝ๋๋ก ๋ง์ด๋ค.
-a ์ด๋ git add์ git commit์ ํฉ์น ๊ฒ.
-am ์ด ์ต์ ์ -a,-m์ ํ๋ฒ์ ์์ ํ๋ ์ต์ ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ฉ์ธ์ง๋ฅผ ์ ์ ๋ ๋ค๋ฅธ ์ฌ๋ ๋ํ ์ด ์ปค๋ฐ์ด ์ ๋์๋์ง ์์๋ณด๊ธฐ ์ฝ๊ฒ ๋ฉ์ธ์ง๋ฅผ ์์ฑํด ์ฃผ์ด์ผ ํ๋ค. ๊ทธ๋ ๊ธฐ์ ์ง๊ธ๋ถํฐ ์ปค๋ฐ ๋ฉ์ธ์ง ์์ฑ ๊ท์น์ ๋ํด ์์๋ณผ ๊ฒ์ด๋ค.
๋จผ์ ๋ฉ์ธ์ง๋ฅผ ์ ์ ๋ ๊ท์น์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ด ์๋ค.
- ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ๋น ํ์ผ๋ก ๊ตฌ๋ถํ๋ค
- ์ ๋ชฉ์ 50๊ธ์ ๋ด๋ก ์ ํ
- ์ ๋ชฉ ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก ์์ฑ
- ์ ๋ชฉ ๋์ ๋ง์นจํ ๋ฃ์ง ์๊ธฐ
- ์ ๋ชฉ์ ๋ช ๋ น๋ฌธ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ๊ณผ๊ฑฐํ์ ์ฌ์ฉํ์ง ์๋๋ค
- ๋ณธ๋ฌธ์ ๊ฐ ํ์ 72๊ธ์ ๋ด๋ก ์ ํ
- ์ด๋ป๊ฒ ๋ณด๋ค๋ ๋ฌด์๊ณผ ์๋ฅผ ์ค๋ช ํ๋ค
๋ฟ๋ง์ด๋๋ผ ๋ค์๊ณผ ๊ฐ์ type๋ ์ ์ด์ค์ผ ํ๋ค.
- FEAT : ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐ
- FIX: ๋ฒ๊ทธ ์์
- DOCS: ๋ฌธ์ ์์
- STYLE: ์คํ์ผ ๊ด๋ จ ๊ธฐ๋ฅ(์ฝ๋ ํฌ๋งทํ , ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ฒด์ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ)
- REFACTOR: ์ฝ๋ ๋ฆฌํํ ๋ง
- TEST: ํ ์คํธ ์ฝํธ, ๋ฆฌํํ ๋ง ํ ์คํธ ์ฝ๋ ์ถ๊ฐ
- CHORE: ๋น๋ ์ ๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์ (ex .gitignore ์์ ๊ฐ์ ๊ฒฝ์ฐ)
๋ธ๋์น๊ฐ ํ์ํ ์ด์ ๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ๋ช๊ฐ์ง๋ง ์ง์ด๋ณด์๋ฉด ๋จผ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋๋๋ฐ ์ด๋ค ํน์ ๊ธฐ๋ฅ์ ๋ง๋ค ๋ ํ๋ฒ์ ๋ง๋ค ์์ ์ด ์๋ ์ํฉ ๊ฐ๋ฐํ๋ค ์ฝ๋๊ฐ ๊ผฌ์ผ๊ฑฐ ๊ฐ์ ๋๋์ด ๋ค๋, ๋ ํ์ ํ ๋ ๋์์ ์ฌ๋ฌ์ฌ๋์ด ๊ฐ์ ํ์ผ์ ์์ ํ๊ณ ์ ์ฅํ๋ค๊ณ ์๊ฐํด๋ณด์. ๊ณผ์ฐ ์ด๋ ๊ฒ ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น... ์ด๋ฅผ ํด๊ฒฐ ํ๊ธฐ์ํด ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ค์ด์ง๋ master or main ๋ธ๋์น๊ฐ ์๋ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
๋ธ๋์น๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
git branch [๋ธ๋์น์ด๋ฆ]
๊ทธ๋ฌ๋ฉด ๋ธ๋์น๊ฐ ์์ฑ๋๋ ๊ฒ์ ์ข ๋ ์์ธํ ์์ ๋ณด๊ฒ ๋ค.
ํ์ฌ ์ฐ๋ฆฌ๋ c1, main ๋ธ๋์น๋ฅผ ๊ฐ๋ฅดํค๊ณ ์๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ๋ธ๋์น๋ฅผ ์์ฑํ๊ฒ๋๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฅดํค๊ณ ์๋ c1 ์๋ฆฌ์ ์๋ก์ด ๋ธ๋์น๊ฐ ์์ฑ๋๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด์ ์๋ก์ด ๋ธ๋์น๋ฅผ ํตํด์ ์ปค๋ฐ์ ํด๋ณด๊ฒ ๋ค.
๋ค์ ์ฒ๋ผ main ๋ธ๋์น๋ ์์ ๋์ง ์๊ณ ์๋ก์ด ๋ธ๋์น๋ง ๋ฐ๋๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค. ๊ทธ๋ฌ๋ฉด ์ด๋ main ๋ธ๋์น๋ฅผ ์์ ํ์ฌ ์ปค๋ฐํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ฆผ์ฒ๋ผ ์ปค๋ฐ์ด ๋๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค. ์ด๋ ๊ฒ ์๋ก์ด ๋ธ๋์น๋ฅผ ํ๊ฒ ๋๋ค๋ฉด main ๋ธ๋์น์๋ ์์ ํ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ธ๋์น๊ฐ ๋์ด๋๋ค๋ณด๋ฉด ์ด ํ๋ก์ ํธ์ ์ด๋ค ๋ธ๋์น๊ฐ ์์๋์ง ํท๊ฐ๋ฆฌ๊ฒ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋ธ๋์น ๋ชฉ๋ก์ ํ์ธํด๋ณด๊ฒ ๋ค.
git branch --list
์ฌ๊ธฐ์ ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ ํ? ์ฌ์ฉ์ค์ธ? ๋ธ๋์น๋ *ํ์๊ฐ ๋ค์ ๋ถ๊ฒ ๋๋ค.
git branch --list 'feature/*'
์ด๋ ๊ฒ ๋๋ฉด ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ธ๋์น ํ์ธ์ธ๋ฐ ์ด๋ ๋ธ๋์น ์์ฑ ๊ท์น์ ์ด์ ๊ฐ ์์ผ๋ฏ๋ก ๋ค์์ ๋ธ๋์น ์์ฑ ๊ท์น์ ์์๋ณด๊ฒ ๋ค.
๋ธ๋์น๋ฅผ ํ์์์ด์ก์ ๋ ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
git branch -d [BRANCH_NAME]
git branch --delete [BRANCH_NAME]
ํ์ง๋ง ์ด ๊ฒ์ผ๋ก ๋ชจ๋ ๋ธ๋์น๋ฅผ ์ญ์ ํ ์ ์๋ ๊ฒ์ ์๋๋ค. ๋ฐ๋ก ๋จธ์ง ๋์ง ์์ ๋ธ๋์น๊ฐ ๊ทธ๋ ๋ค merge ํฉ์น๋ ๊ฒ์ธ๋ฐ ์ด ๋ํ ๋ค์์ ์ค๋ช ํ ๊ฒ์ด๋ค. ๊ทธ๋ฅ ๋จ์ง ๋จธ์ง ๋์ง ์์ ๋ธ๋์น๋ฅผ ์ญ์ ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ค๊ณ ๋ง ์๋ฉด ๋๋ค.
git branch -D [๋ธ๋์น์ด๋ฆ]
git branch --delete --force [๋ธ๋์น์ด๋ฆ]
์ฌ๋ฌ ๋ธ๋์น๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ฉด ๊ฐ ๋ธ๋์น๋ง๋ค ๋ด์ฉ์ด ๋ฌ๋ผ์ง๋ค. ์ด๋ ๊ฐ ๋ธ๋์น๋ง๋ค ๊ฐ๋ฐํ ์ฝ๋๋ฅผ ํฉ์น ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋จธ์ง์ด๋ค.
๋ค์๊ณผ ๊ฐ์ด main ๋ธ๋์น๊ฐ ์๋ค. ๊ฑฐ๊ธฐ์ newMain์ด๋ผ๋ ๋ธ๋์น๋ฅผ ํ์ ๊ฐ๊ฐ ๋๋ค ์ปค๋ฐ์ ํ ํ merge๋ฅผ ํตํด ํฉ์น ๊ฒ์ด ๋ฐ์ ๊ทธ๋ฆผ์ด๋ค
์๋ง merge๊ฐ ์ด๋ค๊ฒ์ธ์ง ๋๋์ด ๋ค์์ ๊ฒ์ด๋ค. ์ด์ ์ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์.
- git merge [๋ธ๋์น์ด๋ฆ]
ํ ๋ธ๋์น์ ๋ณํฉํ ๋ธ๋์น๊ฐ Fast-Forward ๊ด๊ณ O: ๋ณํฉํ ๋ธ๋์น(์ปค๋ฐ)์ ๋ฐ๋ผ๊ฐ. without Merge ์ปค๋ฐ
ํ ๋ธ๋์น์ ๋ณํฉํ ๋ธ๋์น๊ฐ Fast-Forward ๊ด๊ณ X : ๋ณํฉํ ๋ธ๋์น์ ๋ณํฉ๋จ. with Merge ์ปค๋ฐ
- git merge --no-ff [๋ณํฉํ ๋ธ๋์น ๋ช ]
ํ์ฌ ๋ธ๋์น์ ๋ณํฉ ๋์์ ๊ด๊ณ๊ฐ Fast-Forward์ด๋ ์๋๋ ๋ฌด์กฐ๊ฑด Merge ์ปค๋ฐ๊ณผ ๊ฐ์ด ๋ณํฉ๋๋ ์ต์
- git merge --ff-only [๋ณํฉํ ๋ธ๋์น ๋ช ]
ํ์ฌ ๋ธ๋์น์ ๋ณํฉ ๋์์ ๊ด๊ณ๊ฐ Fast-Forward์ธ ๊ฒฝ์ฐ์๋ง ๋ณํฉ ์งํ. Merge ์ปค๋ฐ ์์ฑ๋์ง ์์
- git merge --squash [๋ณํฉํ ๋ธ๋์น ๋ช ]
ํ์ฌ ๋ธ๋์น์ ๋ณํฉ ๋์๊ณผ์ ์ฐจ์ด๋๋ commit์ ํ๋๋ก ํฉ์ณ์ ์ปค๋ฐํจ
์ฌ๊ธฐ์ ๋์ค๋ fast forward ๊ด๊ณ๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด https://otzslayer.github.io/git/2021/12/05/git-merge-fast-forward.html ์ด ๊ธ์ ์ฝ์ผ๋ฉด ๋ ๊ฒ์ด๋ค
rebase๋ merge์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณํฉํ๋ ์ฉ๋์ด๋ค. ์ฉ๋๋ ๊ฐ์ง๋ง ์ฐจ์ด์ ์ด ๋ถ๋ช ํ ์กด์ฌํ๋ค.
๋ ๊ฐ๋ฅผ ๊ฐ๋จํ ๋งํ์๋ฉด
Merge๋ ์ฝ๊ณ ์์ ํ์ง๋ง ์ปค๋ฐํ์คํ ๋ฆฌ๊ฐ ์ง์ ๋ถํ ์ ์๋ค ๋ฐ๋ฉด Rebase๋ ์ ๋ชจ๋ฅด๊ณ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ํํ ์ ์์ด ๊น๋ค๋กญ์ง๋ง ์ปค๋ฐํ์คํ ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
merge๋ก๋ง ํฉ์ณค์ ๋ ์ง์ ๋ถํด์ง๋ ์์๋ฅผ ์ดํด๋ณด๊ฒ ๋ค.








