๐Ÿ“ฉGit/๐Ÿ“งgit

Git ์ฝ”๋“œ, ์šด์˜

Hoon2 2022. 7. 20. 19:13
728x90

์ฝ”๋“œ ๋ชจ์Œ

 

git init = ์ €์žฅ์†Œ ์ƒ์„ฑ

git add (ํŒŒ์ผ๋ช…) ,git add . (์ „์ฒด)

git status ๋‚ด ์ƒํƒœ์ฐฝ ์—ด๊ธฐ (ํ˜„์žฌ ๋‚ด๊ฐ€ ์žˆ๋Š” ๋ธŒ๋žœ์น˜, commit ์ƒํ™ฉ)

git log --all --online  (head ๋‚ด ํ˜„์žฌ์œ„์น˜) 

git difftool  ==> yes ==> hjkl ๋ฐฉํ–ฅํ‚ค, q ์ข…๋ฃŒ ๋น„๊ตํ•˜๊ธฐ

git difftolol 'log id' ==> ํ˜„์žฌํŒŒ์ผvsํŠน์ •์ปค๋ฐ‹ ๋น„๊ต ๊ฐ€๋Šฅ

git restore (ํŒŒ์ผ๋ช…) == ์ตœ๊ทผ ์ปค๋ฐ‹ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ

git restore --source ์ปค๋ฐ‹์•„์ด๋”” ์ „ ์‹œ์ ˆ ์ปค๋ฐ‹ํŒŒ์ผ๋กœ ๋Œ์•„๊ฐ

git revert (์ปค๋ฐ‹ ์ทจ์†Œ) 

git reset --hard (์ปค๋ฐ‹ ์•„์ด๋””) ์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ 

git fetch  ์›๊ฒฉ ์ €์žฅ์†Œ ์‹ ๊ทœ commit ๊ฐ€์ ธ์˜ค๊ธฐ

git branch ์ž๊ธฐ ๋ธŒ๋žœ์น˜ ํ™•์ธ

git branch -d,D (๋ธŒ๋žœ์น˜๋ช…) ์‚ญ์ œ

git checkout, git switch ๋ธŒ๋žœ์น˜ ์ด๋™ 

 

git remote --v ์›๊ฒฉ ์ €์žฅ์†Œ ํ™•์ธํ•˜๊ธฐ (URL ๊นŒ์ง€)

 


์šด์˜ ๋ฐฉ๋ฒ•

git flow

1. develop ๋ธŒ๋žœ์น˜๋ถ€ํ„ฐ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 

 

์ผ๋‹จ ์‹คํ—˜์šฉ ํ”„๋กœ์ ํŠธ ์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ๋‹ค๊ฐ€ ๋จผ์ € ๊ฐœ๋ฐœํ•ด๋ด…์‹œ๋‹ค. 

๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด main ๋ธŒ๋žœ์น˜์— ์žˆ๋˜ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์‚ฌํ•œ develop ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 

์ด์ œ ๋ชจ๋“  ๊ฐœ๋ฐœ์€ develop ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰ํ•˜๋ผ๊ณ  ํŒ€์›๋“ค์—๊ฒŒ ์ „ํŒŒํ•ฉ๋‹ˆ๋‹ค. 

 

2. ์‹ ๊ธฐ๋Šฅ๊ฐœ๋ฐœ์€ feature ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰

 

์‹ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋ฉด develop ๋ธŒ๋žœ์น˜๋ฅผ ๋ณต์‚ฌํ•œ feature ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ๊ฐ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. 

feature/guild ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค์–ด์„œ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

(๋ธŒ๋žœ์น˜ ์ž‘๋ช…ํ•  ๋•Œ ์—ฌ๋Ÿฌ ๋‹จ์–ด๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๋ณดํ†ต ๋Œ€์‹œ๋‚˜ / ๊ธฐํ˜ธ ์”๋‹ˆ๋‹ค)

 

- ์™„์„ฑ๋˜๋ฉด develop ๋ธŒ๋žœ์น˜์— merge ํ•ฉ๋‹ˆ๋‹ค.

- ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ฉด squash and merge๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. 

 

3. ์‹ ๋ฒ„์ „ ์ถœ์‹œ ์ค€๋น„๋Š” release ๋ธŒ๋žœ์น˜

 

์ด๊ฑธ ๋ฐ”๋กœ main ๋ธŒ๋žœ์น˜์— ํ•ฉ์น˜๊ธฐ์—” ๋˜ ๋ถˆ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์—

develop -> release ๋ธŒ๋žœ์น˜ ์ด๋ ‡๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์‚ฌํ•œ ๋‹ค์Œ ์ถœ์‹œ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. 

 

- ์—ฌ๊ธฐ์„œ ํ…Œ์ŠคํŠธ๋‚˜ QA๊ฐ™์€๊ฑฐ ์ง„ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

- ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์•Œ์•„์„œ ์ž„์‹œ ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค์–ด์„œ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ•ฉ๋‹ˆ๋‹ค.

- release/1.0 ์ด๋Ÿฐ ์‹์œผ๋กœ ์ด์˜๊ฒŒ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ์ง“๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

 

์™„์„ฑ๋œ ๊ฒƒ ๊ฐ™์œผ๋ฉด main ๋ธŒ๋žœ์น˜๋กœ merge ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฑฐ ์œ ์ €๋“ค์—๊ฒŒ ๋ฐฐํฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

๊ฐœ๋ฐœ์€ ๊ณ„์† ์ง„ํ–‰๋˜์–ด์•ผํ•˜๋‹ˆ ์™„์„ฑ๋ณธ์€ develop ๋ธŒ๋žœ์น˜์—๋„ merge ํ•ด์ค์‹œ๋‹ค. 

 

4. hotfix ๋ธŒ๋žœ์น˜

๊ฐ‘์ž๊ธฐ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฐ ๊ธ‰ํ•œ ๊ฒƒ๋“ค์€ main ๋ธŒ๋žœ์น˜์—์„œ hotfix ์ด๋Ÿฐ ๋ธŒ๋žœ์น˜ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฒ„๊ทธ์ˆ˜์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

- ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜๋ฉด main ๋ธŒ๋žœ์น˜์— ์ง์ ‘ merge ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

- ๋‹น์—ฐํžˆ develop ๋ธŒ๋žœ์น˜์—๋„ merge ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค. 

 

- continuous delivery ์ฐธ๊ณ  

 

Q. merge ํ•  ๋•Œ ์–ด๋–ค ๋ฐฉ๋ฒ• ์“ฐ๋Š”๊ฒŒ ์ข‹์€๊ฐ€์š”?

๊ธฐ๋ก์„ ๋‚จ๊ฒจ์•ผํ•˜๋Š” ์ค‘์š”ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ mergeํ•  ๋• 3-way merge

๊ธฐ๋ก์„ ๋‚จ๊ธธ ํ•„์š”์—†๋Š” ์“ธ๋ฐ์—†๋Š” ๋ธŒ๋žœ์น˜๋ฅผ mergeํ•  ๋• squash, rebase ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

์ทจํ–ฅ์ผ ๋ฟ์ด๊ณ  ์•Œ์•„์„œํ•ฉ์‹œ๋‹ค. 

728x90