๐ŸŒˆ [Section1] 7. Git ๊ธฐ์ดˆ & ํŽ˜์–ด์‹ค์Šต

ํ˜„์ฃผยท2022๋…„ 8์›” 29์ผ
0

bootcamp

๋ชฉ๋ก ๋ณด๊ธฐ
7/71

๐Ÿ“• ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ!

  • Git๊ณผ GitHub
  • ํŽ˜์–ด์™€ Git Workflow ์‹ค์Šต

โœ๏ธ Git์ด๋ž€?

  • ํŒŒ์ผ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ, ๋ฐฑ์—…, ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ

โœ๏ธ GitHub์ด๋ž€?

  • git Repository(์ €์žฅ์†Œ)๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณณ
  • ๋‚ด ์ปดํ“จํ„ฐ์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์ €์žฅ์ด ๊ฐ€๋Šฅ

โœ๏ธ Git ๋ช…๋ น์–ด

  • Fork - ๋ณต์‚ฌํ•  ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” Rmote Repository์˜ ์ฝ”๋“œ๋ฅผ ๋‚ด Rmote Repository๋กœ ๋ณต์‚ฌ
  • git clone <๋‚ด Rmote Repository ์ฃผ์†Œ> - ๋‚ด Rmote Repository์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋‚ด Local Repository๋กœ ๋ณต์‚ฌ
  • git rmote add pair <์ƒ๋Œ€์˜ Rmote Repository ์ฃผ์†Œ> - ์ƒ๋Œ€์˜ Rmote Repository ์ฃผ์†Œ๋ฅผ ๋‚ด Local Repository์™€ ์—ฐ๊ฒฐ
  • git rmote -v - ์—ฐ๊ฒฐ๋œ ์ฃผ์†Œ๋“ค์˜ ๋ชฉ๋ก ํ™•์ธ ๊ฐ€๋Šฅ
  • git init - .git ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ํ›„, ์•ˆ์—์„œ ๋ช…๋ น ์‹คํ–‰ (Local Repository ์ƒ์„ฑ)
  • nano <ํŒŒ์ผ์ด๋ฆ„> - ํŒŒ์ผ ์ˆ˜์ •
  • git add <ํŒŒ์ผ์ด๋ฆ„> - ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ staging area์— ์ถ”๊ฐ€ (commitํ•˜๊ธฐ ์œ„ํ•ด)
  • git add . - ๋ชจ๋“  ํŒŒ์ผ staging area์— ์ถ”๊ฐ€ (๋ชจ๋‘ ์ถ”๊ฐ€๋˜๋ฏ€๋กœ ์ฃผ์˜)
  • git status - staged๋œ ํŒŒ์ผ๊ณผ untracked๋œ ํŒŒ์ผ ๋ชฉ๋ก ํ™•์ธ
  • git commit -m '์“ธ ๋ฉ”์„ธ์ง€' - commit ๋ฉ”์„ธ์ง€ ์ƒ์„ฑ (ํŒŒ์ผ์˜ ์ œ๋ชฉ๊ณผ ๊ฐ™์€ ๋งฅ๋ฝ)
  • git commit -am '์“ธ ๋ฉ”์„ธ์ง€' - add์™€ commit ๋ฉ”์„ธ์ง€ ์ƒ์„ฑ ๋™์‹œ์—
    (์ปค๋ฐ‹ ๊ธฐ๋ก์ด ํ•œ๋ฒˆ ์ด์ƒ ์žˆ์„ ๋•Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
  • git commit - ์ž๋™ commit ๋ฉ”์„ธ์ง€ ์ƒ์„ฑ
    [์ฐธ๊ณ ] https://cbea.ms/git-commit/
  • git push origin <๋‚˜์˜ branch> - ๋‚ด Rmote Repository๋กœ ํŒŒ์ผ ๋ณด๋‚ด๊ธฐ
  • git pull pair <์ƒ๋Œ€์˜ branch> - ์ƒ๋Œ€์˜ Rmote Repository์— ์žˆ๋Š” ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ
    (์ถฉ๋Œ ๋˜๋Š” ๋‚ด์šฉ์ด ์—†๋‹ค๋ฉด ์ž๋™ ๋ณ‘ํ•ฉ๋จ)
  • git restore <ํŒŒ์ผ์ด๋ฆ„> - commit์ด ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์„ ํ๊ธฐ
  • git restore --staged - staged๋œ ํŒŒ์ผ์„ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆผ
  • git reset HEAD^ / git reset HEAD~1 - ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋™์ž‘ํ•œ ํŒŒ์ผ์„ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ
    [์ฐธ๊ณ ] https://rateye.tistory.com/946
  • git log - ํ˜„์žฌ๊นŒ์ง€ commit๋œ ๋กœ๊ทธ๋“ค ํ™•์ธ
  • git checkout <branch ์ด๋ฆ„> - ์ƒˆ๋กœ์šด branch ์ƒ์„ฑ
  • merge - ์ƒ๋Œ€๊ฐ€ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ์™€ ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๊ฐ€ ํ•ฉ์ณ์ง€๋Š” ๊ฒƒ
    (์„œ๋กœ ๋™์ผํ•œ ๋ผ์ธ์„ ์ˆ˜์ •ํ–ˆ์„ ๊ฒฝ์šฐ conflict๊ฐ€ ์ผ์–ด๋‚˜ ํŒŒ์ผ์„ ๋”ฐ๋กœ ์ˆ˜์ • ํ›„ ๋‹ค์‹œ add ํ•ด์•ผ ํ•จ)

๐Ÿ˜œ ํŽ˜์–ด์™€ Git Workflow ์‹ค์Šต

[ ์ˆœ์„œ ]
1. Fork
2. git clone <๋‚ด Remote Repository ์ฃผ์†Œ>
3. git remote add pair <ํŽ˜์–ด Remote Repository ์ฃผ์†Œ>
4. git remote -v
<๋‚˜ ๋จผ์ €>
5. nano <ํŒŒ์ผ์ด๋ฆ„>
6. git add <ํŒŒ์ผ์ด๋ฆ„>
7. git add commit -m '์“ธ ๋ฉ”์„ธ์ง€'
8. git push origin <์ž๊ธฐ(๋‚˜)์˜ branch ์ด๋ฆ„>
<์ƒ๋Œ€>
9. git pull pair <์ƒ๋Œ€(๋‚˜)์˜ branch ์ด๋ฆ„>]
10. nano <ํŒŒ์ผ์ด๋ฆ„>
11. git add <ํŒŒ์ผ ์ด๋ฆ„>
12. git commit -m '์“ธ ๋ฉ”์„ธ์ง€'
13. git push origin <์ž๊ธฐ(์ƒ๋Œ€)์˜ branch ์ด๋ฆ„>
<๋‚˜>
14. git pull pair <์ƒ๋Œ€(์ƒ๋Œ€)์˜ branch ์ด๋ฆ„)

๊ทธ๋ƒฅ ๊ฐ•์˜๋งŒ ๋“ค์œผ๋‹ˆ๊นŒ ์ˆœ์„œ๊ฐ€ ๋จธ๋ฆฟ์†์—์„œ ์ •๋ฆฌ๊ฐ€ ์•ˆ๋ผ์„œ ์ง์ ‘ ์จ์„œ ์ •๋ฆฌํ•œ ํ›„ ์‹ค์Šต์„ ํ•˜๋‹ˆ๊นŒ ์ˆœ์„œ๊ฐ€ ์ข€ ๋” ์ž˜ ์ƒ๊ฐ๋‚˜ ๋” ์‰ฝ๊ฒŒ ์‹ค์Šตํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค!
๋‚ด ์›๊ฒฉ ์ €์žฅ์†Œ์— push๊นŒ์ง€ ํ•˜๊ณ  ํŽ˜์–ด์˜ ๊ฒƒ์„ pull ํ–ˆ๋‹ค


๊ทธ๋Ÿฐ๋ฐ ๊ฐ™์€ line์— ์ˆ˜์ •์„ ํ–ˆ๋Š”์ง€ merge conflict๊ฐ€ ์ผ์–ด๋‚ฌ๊ธธ๋ž˜ ๊ทธ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ˆ˜์ • ํ›„ ์ €์žฅํ•˜์—ฌ ๋‹ค์‹œ addํ–ˆ๋‹ค!
์‚ฌ์‹ค ์ค‘๊ฐ„์— ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์–ด pull์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ถ„๋ช… add๋ฅผ ํ–ˆ๋Š”๋ฐ git status๋กœ ํ™•์ธ์„ ํ•ด๋ณด๋ฉด staged ๋˜์–ด์žˆ์ง€ ์•Š๊ฑฐ๋‚˜ ํ•˜๋Š” ์ผ์ด ๊ฝค ์žˆ์—ˆ์–ด์„œ ๊ตฌ๊ธ€๋ง๋„ ๋งŽ์ด ํ•ด๋ณด๊ณ  ๊ฐ•์˜๋„ ์—ฌ๋Ÿฌ๋ฒˆ ๋‹ค์‹œ ๋“ค์—ˆ์—ˆ๋‹ค
๊ทธ๋ž˜๋„ ๋‚˜์ค‘์—” ์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์ดํ•ดํ•œ ๊ฑด์ง€ ์•„๋ž˜์™€ ๊ฐ™์ด ์›๋ž˜ ํŒŒ์ผ์— ๊ฐ์ž ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์ด ์ถ”๊ฐ€ ๋˜์–ด ์•„์ฃผ ๋ฟŒ๋“ฏํ–ˆ๋‹ค !! ๐Ÿ™Œ
์˜ค๋ฅ˜ ๋์— ๋“œ๋””์–ด ์ž˜ ๋ผ์„œ ๊ฐ๊ฒฉ ,,๐Ÿ˜ญ


๐ŸŒˆ ๋Š๋‚€์ 

์ด๋ฒˆ์—๋„ ๋‚ด๊ฐ€ ํŽ˜์–ด์—๊ฒŒ ๋„์›€์ด ๋˜์ง€ ๋ชปํ• ๊นŒ๋ด ์–ด์ œ ์˜ˆ์Šต์„ ๋ฏธ๋ฆฌ ํ•ด๋†จ์—ˆ๋Š”๋ฐ ๊ทธ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค !! ํŽ˜์–ด๊ฐ€ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€๋Š” ์ ์„ ์„ค๋ช…ํ•ด์ฃผ์—ˆ๋Š”๋ฐ ์„ค๋ช…์„ ์ž˜ ํ•ด์ฃผ์‹ ๋‹ค๋Š” ์นญ์ฐฌ๋„ ๋ฐ›์•˜๋‹ค ํ—ท ๐Ÿ˜œ
๋˜ ํ™•์‹คํžˆ ํŽ˜์–ด์™€ ํ•จ๊ป˜ ์‹ค์Šตํ•˜๋‹ˆ๊นŒ ์„œ๋กœ์˜ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ๋ณด์™„ํ•ด์ฃผ๋ฉด์„œ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค
์‚ฌ์‹ค ๋งค ํŽ˜์–ด ์ˆ˜์—…๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ๊ณผ ํ•จ๊ป˜ ์†Œํ†ตํ•˜๋‹ค๋ณด๋‹ˆ ์–ด์ƒ‰ํ•œ ๋ถ€๋ถ„๋„ ์žˆ์ง€๋งŒ ๊ทธ๋งŒํผ ์žฅ์ ์ด ์žˆ๋‹ค ใ…Žใ…Ž
์•ž์œผ๋กœ๋„ ์—ด์‹ฌํžˆ ํ•˜์ž !

0๊ฐœ์˜ ๋Œ“๊ธ€