let's get IT with DAVINA ๐Ÿ’ป

Git [installation & branch ์ƒ์„ฑ] ๋ณธ๋ฌธ

DEV_IN/Git&Github

Git [installation & branch ์ƒ์„ฑ]

๋‹ค๋นˆ์น˜์ฝ”๋“œ๐Ÿ’Ž 2023. 2. 8. 17:59

Why using git?

ํŒŒ์ผ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ๋ณด์กดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด

How to install?

1. Homebrew ๊ฒ€์ƒ‰ํ•ด์„œ ์‚ฌ์ดํŠธ์— ๋ณด์ด๋Š” ๊ธด ์„ค์น˜๋ช…๋ น์–ด๋ฅผ

2. ํ„ฐ๋ฏธ๋„์— ๊ทธ๋Œ€๋กœ ์ž…๋ ฅ

3. password ์ž…๋ ฅํ•˜๋ผ๊ณ  ํ•˜๋ฉด ๋งฅ๋ถ ๋น„๋ฒˆ ์ž…๋ ฅ

4. ์„ค์น˜ ๋๋‚˜๋ฉด ์ปค๋งจ๋“œ 2๊ฐœ ์ž…๋ ฅํ•˜๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ 2๊ฐœ ๊ฐ๊ฐ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅ

5. brew install git ํ•˜๋ฉด ์„ค์น˜ ๋

6. ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ master → main์œผ๋กœ ๋ณ€๊ฒฝ

git config --global init.defaultBranch main

7.  ์ด ์ปดํ“จํ„ฐ์—์„œ git ์ฒ˜์Œ์“ด๋‹ค? ⇒ ์‚ฌ์šฉ์ž ๋“ฑ๋ก

git config --global user.email "ํ™๊ธธ๋™@naver.com" 
git config --global user.name "ํ™๊ธธ๋™"

Git ์ด์šฉ๋ฒ•

1. ์ž‘์—… ํด๋”์—์„œ git ์ด์šฉ

//ํ„ฐ๋ฏธ๋„ -> ์ €์žฅ์†Œ ์ƒ์„ฑ
git init

2. ํŒŒ์ผ์˜ ํ˜„์žฌ ์ƒํƒœ ๊ธฐ๋กํ•ด๋‘๊ธฐ

//๊ธฐ๋ก์„ ๋‚จ๊ธธ ํŒŒ์ผ ๊ณ ๋ฅด๊ธฐ
git add ํŒŒ์ผ๋ช…
//์—ฌ๋Ÿฌ ํŒŒ์ผ ๊ธฐ๋ก๋‚จ๊ธธ๋•Œ
git add ํŒŒ์ผ๋ช…1 ํŒŒ์ผ๋ช…2
//๋ชจ๋“  ํŒŒ์ผ ๊ธฐ๋ก๋‚จ๊ธธ๋•Œ
git add .

//๋‚ด ์œ„์น˜: ์ค‘๊ฐ„์—์„œ staging area

//์„ ํƒํ•œ ํŒŒ์ผ์˜ ๊ธฐ๋ก์„ ์Šค๋ƒ…์ƒท ์ฐ๊ธฐ
git commit -m "๋ฉ”์„ธ์ง€" 

//์ดํ›„ ๋‚ด ์œ„์น˜: repository

3. ๊ธฐ๋ก ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

# ๋‹ค์Œ ์ปค๋ฐ‹์„ ์œ„ํ•ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
git status

4. commit ๋‚ด์—ญ ์กฐํšŒ

git log --all --oneline //commit ์•„์ด๋””๋„ ๋‚˜์˜ด

5. ๋ฐ”๋กœ ์ „ commit vs ํ˜„์žฌํŒŒ์ผ ์ฐจ์ด์  ๋ณด๊ธฐ

# ์Šคํ…Œ์ด์ง€๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
git diff

# ์Šคํ…Œ์ด์ง€ํ–ˆ์ง€๋งŒ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
git diff --staged

git difftool
:q //์ข…๋ฃŒ

Git Branch ์ƒ์„ฑ

= commit์˜ ๋ณต์‚ฌ๋ณธ ๋งŒ๋“ค๊ธฐ

branching์€ ๊ธฐ์กด ๊ฐœ๋ฐœ์ค‘์ธ ๋ฉ”์ธ ๊ฐœ๋ฐœ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๋ฉ”์ธ ๊ฐœ๋ฐœ ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ฒ˜์Œ์— Git repository๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋‚˜์˜ค๋Š” main ๋ธŒ๋žœ์น˜์—์„œ๋งŒ ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ, ๊ธฐ์กด main ๋ธŒ๋žœ์น˜์—์„œ์˜ ์ž‘์—…์€ ์œ ์ง€ํ•˜๊ณ  ์ƒˆ๋กœ์šด feature ๋ธŒ๋žœ์น˜์—์„œ ์ž์œ ๋กญ๊ฒŒ ์ฝ”๋“œ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ ๊ฐ€๋Šฅ

1. branch ์ƒ์„ฑ

git branch ๋ธŒ๋žœ์น˜๋ช… //์ƒ์„ฑ
git swith -c ๋ธŒ๋žœ์น˜๋ช… //์ƒ์„ฑํ•˜๊ณ  ์ด๋™
git checkout -b ๋ธŒ๋žœ์น˜๋ช…

git switch ๋ธŒ๋žœ์น˜๋ช… //๋ธŒ๋žœ์น˜๋กœ ์ด๋™
git checkout ๋ธŒ๋žœ์น˜๋ช…

2. ๋ฐ˜์˜

git add .
git commit -m "๋ฉ”์„ธ์ง€"

git switch main/master //๋ฐ˜์˜ํ•˜๊ณ  ์‹ถ์€ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

//์ด๋•Œ HEAD=>๋‚ด ํ˜„์žฌ ์œ„์น˜
git merge ๋ธŒ๋žœ์น˜๋ช… //๋ธŒ๋žœ์น˜๋ช…์— ์žˆ๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด main/master ๋ธŒ๋žœ์น˜์— ํ•ฉ์ณ์ง

//์ด๋•Œ ๋˜‘๊ฐ™์€ ์œ„์น˜์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒ ์‹œ conflict ๋ฐœ์ƒ
//ํ•ด๊ฒฐ๋ฒ•
//1. ์ตœ์ข…์ ์œผ๋กœ ์›ํ•˜๋Š” ์ฝ”๋“œ๋งŒ ๋‚จ๊ธฐ๊ณ 
//2. git add
//3. git commit

'DEV_IN > Git&Github' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Git VS Github  (0) 2023.02.08
Git Flow  (4) 2023.02.08
Github  (0) 2023.02.08
Git [๋‚ด ์‹ค์ˆ˜ ๋ณต๊ตฌํ•˜๊ธฐ] ๊ณผ๊ฑฐ๋กœ ์“ฉ ๐Ÿ’จ  (4) 2023.02.08
Git [merge]  (3) 2023.02.08
Comments