TIL

dev-wholยท2021๋…„ 4์›” 15์ผ
0

โœ๐Ÿป Git(Configuration Management Tool)

Git์ด๋ž€?

  • ๋ถ„์‚ฐํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS, Version Control System)

Git์˜ ํ•„์š”์„ฑ

  • ์ตœ์ข… ํŒŒ์ผ์„ ์ €์žฅํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋ฐฑ์—… ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋†“์ง€ ์•Š์œผ๋ฉด ๋‹ค์‹œ ๋Œ์•„๊ฐˆ ์ˆ˜ ์—†๋‹ค. ๋˜ ํŒŒ์ผ์ด ๋งŽ์•„์ง€๋ฉด ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐฑ์—… ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋†“๊ธฐ ์–ด๋ ต๋‹ค. ํ•˜์ง€๋งŒ Git์„ ์ด์šฉํ•˜๋ฉด ์ด์ „ ๋ฒ„์ „์„ ์Šค๋ƒ…์ƒท(๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ)์œผ๋กœ ์ €์žฅํ•ด๋‘๊ณ  ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์€ ๋ฒ„์ „์œผ๋กœ ์‰ฝ๊ฒŒ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋งŽ์€ ์‚ฌ๋žŒ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์„ ๋™์‹œ์— ์ž‘์—…ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ๋‚˜์™€ ์ƒ๋Œ€๋ฐฉ์ด ์›ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ์‰ฝ๊ฒŒ ๋Œ์•„๊ฐ€ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  1. ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ณ€๊ฒฝ ์ด๋ ฅ(๋ˆ„๊ฐ€, ์–ธ์ œ, ๋ฌด์—‡์„, ์ถ”๊ฐ€/์ˆ˜์ •/์‚ญ์ œ)์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  3. ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๋‹ค.
    (ํŠน์ • ์‹œ์ ์— ์ €์žฅ๋œ ๋ฒ„์ „๊ณผ ๋น„๊ต)
  4. ํ˜‘์—…ํ•˜๊ธฐ ์ข‹๋‹ค.
  5. ๋ฐฑ์—…

Git Repository(git directory)

  • ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ๊ณณ
  • ์ž‘์—…ํ•˜๋Š” ์†Œ์Šค ์ฝ”๋“œ ํด๋”๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‚ด ํด๋”๋ฅผ Git์˜ ๊ด€๋ฆฌ ์•„๋ž˜ ๋‘์–ด์•ผ ํ•œ๋‹ค. Git์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ํด๋”๋ฅผ Git repository๋ผ๊ณ  ํ•œ๋‹ค.
  • Remote Repository
    ์›๊ฒฉ ์˜จ๋ผ์ธ ์„œ๋ฒ„ ์ƒ์˜ ์ €์žฅ์†Œ(์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๊ณผ ๊ณต์œ  ๊ฐ€๋Šฅ)
  • Local Repository
    ๋‚ด ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์†Œ(๋‚ด ๊ฐœ์ธ ์ €์žฅ์†Œ)

๊ธฐ๋ณธ ์šฉ์–ด

  • fork : ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ์œ„ํ•ด ํ•ด๋‹น Remote Repository์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‚˜์˜ Remote Repository๋กœ ๋ฐ›์•„์˜ค๋Š” ์ž‘์—…
  • clone : ๋‚˜์˜ Remote Repository๋กœ ๋ถˆ๋Ÿฌ์˜จ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‚˜์˜ Local Repository๋กœ ๋ฐ›์•„์˜ค๋Š” ์ž‘์—…
  • commit : ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๋Š” ์ž‘์—…(Local Repository)
  • log : ํ˜„์žฌ๊นŒ์ง€ commit๋œ ๋‚ด์—ญ ํ‘œ์‹œ
  • status : ๋‚ด ๋กœ์ปฌ๋กœ ๋ณต์‚ฌํ•ด ์˜จ ๋””๋ ‰ํ† ๋ฆฌ์˜ commit ๋˜๊ธฐ ์ „ ๊นŒ์ง€์˜ ์ƒํƒœ ํ‘œ์‹œ
  • add : unrecked file์„ staging area๋กœ ์ถ”๊ฐ€
  • push : ๋‚˜์˜ Local Repository์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ(์ปค๋ฐ‹)์„ ๋‚˜์˜ Remote Repository๋กœ ๋ณด๋‚ด์ฃผ๋Š” ์ž‘์—…
  • pull request : ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋‹ด๊ธด Remote Repository์˜ ํ”„๋กœ์ ํŠธ ๋ฐ˜์˜ ์—ฌ๋ถ€๋ฅผ ์š”์ฒญํ•˜๋Š” ์ž‘์—…
  • pull : ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๋Š” Remote Repository์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‚˜์˜ local Repository์— ๋ฐ›์•„์˜ค๋Š” ์ž‘์—…
  • working directory(work spase) : ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์—…ํ•˜๋Š” ๊ณต๊ฐ„
    • untracked files(unstaged) : Git์ด ํŠธ๋ž˜ํ‚นํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ์ƒํƒœ
    • tracked files : Git์ด ํŠธ๋ž˜ํ‚นํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ
      • unmodified : ์ด์ „ ๋ฒ„์ „์—์„œ ์ˆ˜์ •์ด ์•ˆ๋œ ์ƒํƒœ
      • modified : ์ด์ „ ๋ฒ„์ „์—์„œ ์ˆ˜์ •์ด ๋œ ์ƒํƒœ
  • staging area : ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ์— ์˜ฎ๊ธธ ์ค€๋น„(์ปค๋ฐ‹)๊ฐ€ ๋œ ํŒŒ์ผ๋“ค์„ ๋†“๋Š” ๊ณต๊ฐ„(Git ๊ด€๋ฆฌ ํ•˜์— ์žˆ๋Š” ๊ณต๊ฐ„)
    • staged : commit์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ(staging area์— ์žˆ๋Š” ์ƒํƒœ)
  • restore : ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ Local Repository์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ทจ์†Œ
  • reset : ์•„์ง Remote Repositorydo์— ๊ฐ€์ง€ ์•Š์€ commit์„ ์ทจ์†Œ
  • revert : ์ด์ „ ์ปค๋ฐ‹ ๋‚ด์—ญ์€ ๋‚จ๊ธฐ๊ณ  ๋Œ์•„๊ฐ€๊ณ ์ž ํ•˜๋Š” ์ปค๋ฐ‹์œผ๋กœ ์ด๋™
  • head ์˜ต์…˜ : ๋Œ์•„๊ฐ€๊ณ ์ž ํ•˜๋Š” ์ปค๋ฐ‹(git reset HEAD๋ฅผ ์“ฐ๋ฉด HEAD ์ดํ›„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋ชจ๋‘ ์ง€์šด๋‹ค)
  • soft ์˜ต์…˜ ๋Œ์•„๊ฐ€๊ณ ์ž ํ•˜๋Š” ์ปค๋ฐ‹(HEAD์™€ ๊ฐ™์ด ๋Œ์•„๊ฐ€์ง€๋งŒ ๋Œ์•„๊ฐ„ ์ปค๋ฐ‹ ์ดํ›„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ์–ตํ•œ๋‹ค)
  • diff : ???????????
  • init : ๊ธฐ์กด ๊ธฐ๋ ‰ํ† ๋ฆฌ๋ฅผ Git repository๋กœ ๋ณ€ํ™˜
  • remote add origin : ๋‚˜์˜ Remote repository์— ์—ฐ๊ฒฐ
  • branch : ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ(๋™์‹œ์— ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค)
  • merge : branch ๋ณ‘ํ•ฉ

git pull vs git fetch

์ƒํ™œ์ฝ”๋”ฉ ๊ฐ•์˜https://www.youtube.com/watch?v=V6R96Hzm8hY

  • pull์€ Local๊ณผ Remote๊ฐ€ ๋ณ‘ํ•ฉ๋˜์–ด ๋ฐ›์•„์ง„๋‹ค
  • fetch๋Š” Local๊ณผ Remote๊ฐ€ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š๊ณ  ๋ฐ›์•„์ง„๋‹ค.

โ—๏ธ ์˜ต์…˜์ด๋ž‘ pull๊ณผ fetch ์ฐจ์ด๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜์ง„ ๋ชปํ–ˆ๋‹ค. ๋‚˜์—๊ฒ ์ฃผ๋ง์ด ์žˆ๋‹ค

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