๐Ÿ’œ๋ณด๋ผ๋‹˜ Git ํŠน๊ฐ•๐Ÿ’œ

Taehee Kimยท2022๋…„ 4์›” 29์ผ
0

๐Ÿ“—FE ์ œ์ฝ”๋ฒ  TIL

๋ชฉ๋ก ๋ณด๊ธฐ
7/7
post-thumbnail

๐Ÿ™‹ Violet Lee๋‹˜ ํŠน๊ฐ• ํ›„๊ธฐ

์˜ค๋Š˜์€ ๊นƒ/๊นƒํ—ˆ๋ธŒ/์ปค๋งจ๋“œ ๋ช…๋ น์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ํŠน๊ฐ•์ด ์žˆ์—ˆ๋‹ค. ๋ณด๋ผ๋‹˜ ์ˆ˜์—…์„ ํ†ตํ•ด์„œ ํ˜‘์—…์— ํ•„์š”ํ•œ, ์ฆ‰ ์‹ค๋ฌด์—์„œ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์–ธ์–ด๋“ค์„ ๋ฐฐ์šฐ๊ณ  ์‹ค์Šตํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์ „ ๋‚  5์‹œ ๊ฐ€๊นŒ์ด ๋˜๋Š” ์‹œ๊ฐ„์— ์ž์„œ ํ”ผ๊ณคํ•  ๋งŒ๋„ ํ–ˆ์ง€๋งŒ, ์ •๋ง ํ˜‘์—…์„ ์ž˜ํ•˜๋Š” FE ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ๋งˆ์Œ์— ์•„์นจ๋ถ€ํ„ฐ ์ •์‹ ์„ ๋ฐ”์ง ์ฐจ๋ฆฌ๊ณ  ์ˆ˜์—…์— ์ฐธ์—ฌํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ์ผ๋‹จ ๋‚˜๋Š” CMD์ฐฝ๊ณผ ์นœํ•˜์ง€ ์•Š์•˜๊ณ  ์ปค๋งจ๋“œ ๋ช…๋ น์–ด๋„ ๊ธฐ๊ป ์•„๋Š” ๊ฑด git pull, clone, add, push์˜€๋‹ค.

๊ฒฐ๊ตญ ์‹ค์ˆ˜๋„ ๋งŽ์ด ํ•˜๊ณ  ๋น ๋ฅธ ์ง„๋„ ๋–„๋ฌธ์— ์˜จ์ „ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ๋Š” ์–ด๋ ค์› ์ง€๋งŒ, ๋งˆ์ง€๋ง‰ ์‹ค์Šต์—์„œ ์ง์ ‘ forkํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ main branch๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์„ ํ•˜๋ฉด์„œ ํฅ๋ฏธ๊ฐ€ ์ƒ๊ธด ๊ฒƒ ๊ฐ™๋‹ค. ์•„์ง์€ ์–ด์ƒ‰ํ•œ ๋ช…๋ น์–ด๋“ค์ด์ง€๋งŒ, ์—ฐ์Šตํ•˜๊ณ  ์ตํ˜€์„œ ์ถ”ํ›„์— ๋ฉ‹์Ÿ์ด ์‚ฌ์ž ํŒ€ ํ˜‘์—…์— ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž€๋‹ค! ๊นƒ ๊ณต๋ถ€ ์Šคํ„ฐ๋””๋„ ๋‹จ๊ธฐ๋กœ ํ•ด๋ณด๋ฉด ์–ด๋–จ๊นŒ ์ƒ๊ฐ๋„ ๋“  ํ•˜๋ฃจ์˜€๋‹ค!


๐Ÿ“Œ ์ฃผ์š” ์ปค๋งจ๋“œ ๋ช…๋ น์–ด

Git Bash ๊ด€๋ฆฌ์ž๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰์„ ํ•ด์•ผ ์ฝ๊ธฐ,์“ฐ๊ธฐ ๋“ฑ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์ˆœ์„œ: pwd cd ls

pwd: print working direcory
cd
ls: list

  • ls -a: ์ˆจ๊ธดํ•ญ๋ชฉ๋ณด๊ธฐ
  • ls -al: ์ž์„ธํ•œ ๋‚ด์šฉ๊นŒ์ง€
  • a ์ˆจ๊น€ํŒŒ์ผ l์€ ์ถ”๊ฐ€์ •๋ณด

โœ” ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

pwd > cd ํŒŒ์ผ ์œ„์น˜ > vim ํŒŒ์ผ์ด๋ฆ„.ํ™•์žฅ์ž๋ช…
i : ๋‚ด์šฉ ์ ๊ธฐ
esc + : ํ•˜๊ณ  wq(์ €์žฅ๋งŒ ํ•˜๊ณ ์‹ถ์œผ๋ฉด w, ๋‚˜๊ฐ€๊ธฐ q, ๋™์‹œ wq)

cat test.text ๋ช…๋ น์–ด ์น˜๋ฉด ํŒŒ์ผ ์•ˆ์—ด์–ด๋ณด๊ณ  ๋‚ด์šฉ ํ™•์ธํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
rm -r : ํด๋” ์‚ญ์ œ๊ณ  rm์€ ํŒŒ์ผ ์‚ญ์ œ์˜ˆ์š”
rm .swp ํ•˜๋ฉด .swp ํŒŒ์ผ ์‹น ์‚ญ์ œ~!
rm .ํŒŒ์ผ๋ช….swp ํ•ด๋‹น ํŒŒ์ผ ์‚ญ์ œ

.code: VSCode์—ด๊ธฐ

๐Ÿ“Œ debug

๐Ÿ“Œ ์ปค๋ฐ‹์ด๋ž€?

  • ํ•˜๋‚˜์˜ ๋…๋ฆฝ์ ์ธ ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ƒ„
  • ์‚ฌ์ง„ ์ฐ๊ธฐ์™€ ๋™์ผ!
    ์‚ฌ๊ณผ ํ˜ผ์ž ์ฐ๊ณ , ๋ฐ”๋‚˜๋‚˜ ์˜ฌ๋ ค์„œ ํ•จ๊ป˜ ์ฐ๊ณ ...
  • ์ปค๋ฐ‹์€ ์ฑ…์—์„œ ๋ชฉ์ฐจ ์ ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.
  • ์†Œ์ŠคํŠธ๋ฆฌ, ๊นƒํฌ๋ผ์ผ„ ๋งŽ์ด ์‚ฌ์šฉ
  • git graph ์ต์Šคํ…์…˜์—์„œ ์ปค๋ฐ‹ ์•„์ด๋”” ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿ“Œ checkout?

  • Checkout: ์ปค๋ฐ‹์„ ์ ๊ฒ€ํ•˜๋‹ค
  • git checkout ๋ธŒ๋žœ์น˜๋ช…(๊ตฌ) --> git switch ๋ธŒ๋žœ์น˜๋ช…(์‹ )
  • commit Checkout ์ƒํƒœ์—์„œ ์ปค๋ฐ‹์„ ํ•˜๋ฉด ๋ฐ˜์˜์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€ ์กฐ์‹ฌ
    - HEAD ์ •์˜: ํ˜„์žฌ ์ฒดํฌ์•„์›ƒํ•œ ๋ธŒ๋žœ์น˜์˜ ๊ฐ€์žฅ ์ตœ์‹  ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ™”์‚ดํ‘œ
  • ๋ณดํ†ต ๋ธŒ๋žœ์น˜(branch)๋Š” ํŠน์ • ์ปค๋ฐ‹(commit)์˜ revision number๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  HEAD๊ฐ€ ์ด ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ด๋ ‡๊ฒŒ HEAD -> ๋ธŒ๋žœ์น˜ -> ํŠน์ • ์ปค๋ฐ‹ ์ˆœ์„œ๋กœ commit์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ƒํƒœ๋ฅผ โ€˜attached HEADโ€™ ์ƒํƒœ(state)๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , Detached HEAD๋ž€ HEAD๊ฐ€ ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ commit์„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๊ณ , ์ง์ ‘ ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

๐Ÿ“Œ git ์ €์žฅ(๋ฒ„์ „๊ด€๋ฆฌ, ์ปค๋ฐ‹ ๋งŒ๋“ค๊ธฐ)

  • 1์‹œ๊ฐ„ ๋‹จ์œ„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋“ฑ ์žฆ์€ ์ €์žฅ ๋นˆ๋„ X
  • ์ปค๋ฐ‹์˜ ๋…ผ๋ฆฌ์  ๋ณ€๊ฒฝ์ด ์žˆ์„ ๋•Œ ์ €์žฅํ•œ๋‹ค.
  • ๊ฐ€๋Šฅํ•˜๋ฉด ์ปค๋ฐ‹ ํฌ๊ธฐ๋Š” ์ž‘์„ ์ˆ˜๋ก ์ข‹๋‹ค.
    ex) ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ ๋…ผ๋ฆฌ์  ๋‹จ์œ„(์ฃผ๊ด€์ )
  1. ๋งˆํฌ์—… ์ž‘์—…
  2. ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ์—ฐ๋™
  3. ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ ์—ฐ๋™

โœ” ์ผ ์ž˜ํ•˜๋Š” ์‚ฌ๋žŒ ํŠน์ง• ์ž์ฃผ ๋ณด๊ณ  -> push ์ž์ฃผํ•˜๊ธฐ!

๐Ÿ“Œ Repository(์ €์žฅ์†Œ)

์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋ชจ์—ฌ ์žˆ๋Š” ๊ณต๊ฐ„!
๋ชจ๋…ธ๋ฆฌํฌ์ง€ํ† ๋ฆฌ - ์ž‘์€ ํ”„๋กœ์ ํŠธ๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ ๋‹น ํ•˜๋‚˜์˜ ๋ ˆํฌ
git log

https://www.44bits.io/ko/post/linux-and-mac-command-line-survival-guide-for-beginner
--> ์ด๊ฑฐ ์ง„์งœ ํ•„์ˆ˜ ๊ผญ๊ผญ๊ผญ ๊ณต๋ถ€ํ•˜๊ธฐ!!!!

๐Ÿ“Œ checkout?

  • Checkout: ์ปค๋ฐ‹์„ ์ ๊ฒ€ํ•˜๋‹ค
  • git checkout ๋ธŒ๋žœ์น˜๋ช…(๊ตฌ) --> git switch ๋ธŒ๋žœ์น˜๋ช…(์‹ )
  • commit Checkout ์ƒํƒœ์—์„œ ์ปค๋ฐ‹์„ ํ•˜๋ฉด ๋ฐ˜์˜์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€ ์กฐ์‹ฌ
    - HEAD ์ •์˜: ํ˜„์žฌ ์ฒดํฌ์•„์›ƒํ•œ ๋ธŒ๋žœ์น˜์˜ ๊ฐ€์žฅ ์ตœ์‹  ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ™”์‚ดํ‘œ
  • ๋ณดํ†ต ๋ธŒ๋žœ์น˜(branch)๋Š” ํŠน์ • ์ปค๋ฐ‹(commit)์˜ revision number๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  HEAD๊ฐ€ ์ด ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ด๋ ‡๊ฒŒ HEAD -> ๋ธŒ๋žœ์น˜ -> ํŠน์ • ์ปค๋ฐ‹ ์ˆœ์„œ๋กœ commit์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ƒํƒœ๋ฅผ โ€˜attached HEADโ€™ ์ƒํƒœ(state)๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , Detached HEAD๋ž€ HEAD๊ฐ€ ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ commit์„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๊ณ , ์ง์ ‘ ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

๐Ÿ“Œ ๋ฒ„์ „๊ด€๋ฆฌ

๋ฐ”๋กœ ๋ ˆํฌ๋กœ ์ปค๋ฐ‹ ๊ฐ€๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, staging area๋ฅผ ๊ฑฐ์ณ์„œ ๊ฐ
working ๋””๋ ‰ํ† ๋ฆฌ -> ์Šคํ…Œ์ด์ง• -> ๋ ˆํฌ

๐Ÿ“Œ ์Šคํ…Œ์ด์ง• ํ•˜๋Š” ๋ฐฉ๋ฒ• (git status)

-git init: ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹Œ ํด๋”๋ฅผ ์ €์žฅ์†Œ๋กœ ๋งŒ๋“ค์–ด์คŒ

  • git status
  • ๋ฌด์ง€์„ฑ git add . ์‚ฌ์šฉ ๊ธˆ์ง€!,ํ•„์š” ์—†๋Š” ํŒŒ์ผ์ด ํ•จ๊ป˜ ์„ž์ž„
    (์•„์ฃผ ๊ฐ„๋‹จํ•œ ๊ฒƒ์€ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๊ด€)
  • git status๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿ“Œ git ignore

https://www.toptal.com/developers/gitignore

  • ๋ฒ„์ „๊ด€๋ฆฌ์— ํ•„์š” ์—†๋Š” ๊ฑฐ ์ฐพ์•„์„œ ๋ณต์‚ฌ๋ถ™์ด๊ธฐ
  • ๋ฌด์ง€์„ฑ add . X
  • DS.store ์ด๋Ÿฐ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉด ์•ˆ๋จ

์‹ค์Šต ๋งํฌ(โญโญโญ)

https://learngitbranching.js.org/?locale=ko
https://git-school.github.io/visualizing-git/

๐Ÿ“Œ ๋ธŒ๋žœ์น˜(branch)

  • ๋ธŒ๋žœ์น˜ ์œ„์— ์ปค๋ฐ‹๋“ค์ด ์ฃผ๋ ์ฃผ๋  ๋‹ฌ๋ฆฐ๋‹ค

  • git flow. github glow gitlab flow ์ค‘ ํƒ 1๋กœ ํšŒ์‚ฌ์—์„œ ๋ธŒ๋žœ์น˜ ์ „๋žต ์„ธ์›€
    - ํŠน์ •ํ•œ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ๋งŒ๋“ ๋‹ค!
    ex) ๋ฒ„๊ทธ ์ˆ˜์ •, ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋“ฑ๋“ฑ..

  • ์ƒ์„ฑ: git branch ๋ธŒ๋žœ์น˜ ์ด๋ฆ„

  • ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ๊ฐ€๊ธฐ: git switch ๋ธŒ๋žœ์น˜ ์ด๋ฆ„

  • git checkout


readme ์ž‘์„ฑ ๋ฐฉ๋ฒ•

๋ฆฌ๋“œ๋ฏธ๋ฅผ ์ œ๋Œ€๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์œผ๋ฉด

(ํ•„์ˆ˜์‚ฌํ•ญ)
1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ
2. ๊ตฌ๋™ ๋ฐฉ๋ฒ•

์˜ˆ์‹œ) ๋ณด๋ผ๋‹˜ simple todo app
https://github.com/Violet-Bora-Lee/simple-todo-app-server


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