[Git] κΉƒ(Git)μ΄λž€?

Posted by Euisuk's Dev Log on May 2, 2023

[Git] κΉƒ(Git)μ΄λž€?

원본 κ²Œμ‹œκΈ€: https://velog.io/@euisuk-chung/1.-κΉƒGitμ΄λž€

κΉƒ(Git)μ΄λž€?

  • κΉƒ(Git)은 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λΆ„μ‚° 버전 관리 μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. 즉, μ—¬λŸ¬ λͺ…이 ν•˜λ‚˜μ˜ ν”„λ‘œμ νŠΈλ₯Ό κ°œλ°œν•  λ•Œ, μ†ŒμŠ€μ½”λ“œμ˜ λ³€κ²½ 내역을 μΆ”μ ν•˜κ³  κ΄€λ¦¬ν•˜μ—¬ 버전을 관리할 수 μžˆλŠ” λ„κ΅¬μž…λ‹ˆλ‹€. 깃은 λΉ λ₯Έ 속도와 λΆ„μ‚° μ €μž₯μ†Œλ₯Ό ν†΅ν•œ μ•ˆμ •μ μΈ 관리, 브랜치 κΈ°λŠ₯ λ“± λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, λ‹€μ–‘ν•œ μš΄μ˜μ²΄μ œμ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κΉƒμ˜ μ£Όμš” κ°œλ…

  • Repository(μ €μž₯μ†Œ): κΉƒμ—μ„œλŠ” λ³€κ²½ 내역을 μΆ”μ ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” λ‹¨μœ„λ‘œ, 일반적으둜 둜컬 μ €μž₯μ†Œμ™€ 원격 μ €μž₯μ†Œλ‘œ λ‚˜λ‰©λ‹ˆλ‹€. 둜컬 μ €μž₯μ†ŒλŠ” 개발자의 개발 ν™˜κ²½μ—μ„œ μ‚¬μš©λ˜λŠ” μ €μž₯μ†Œμ΄λ©°, 원격 μ €μž₯μ†ŒλŠ” λ‹€λ₯Έ κ°œλ°œμžμ™€ ν˜‘μ—…ν•  λ•Œ μ‚¬μš©λ˜λŠ” μ €μž₯μ†Œμž…λ‹ˆλ‹€.
  • Commit(컀밋): λ³€κ²½ 내역을 μ €μž₯μ†Œμ— κΈ°λ‘ν•˜λŠ” μž‘μ—…μ„ μ˜λ―Έν•©λ‹ˆλ‹€. 각각의 컀밋은 κ³ μœ ν•œ ν•΄μ‹œκ°’μ„ κ°€μ§€λ©°, λ³€κ²½ λ‚΄μ—­μ˜ 이λ ₯을 좔적할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • Branch(브랜치): μ»€λ°‹μ˜ 이λ ₯을 기반으둜 μƒμ„±λœ μž‘μ—… 라인으둜, μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€λ‚˜ 버그 μˆ˜μ • 등을 μœ„ν•΄ 독립적인 브랜치λ₯Ό μƒμ„±ν•˜μ—¬ μž‘μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κΉƒμ˜ λ™μž‘ 원리

깃은 파일의 λ³€κ²½ 내역을 μΆ”μ ν•˜μ—¬ κ΄€λ¦¬ν•˜λŠ”λ°, 이λ₯Ό β€˜μŠ€λƒ…μƒ·(snapshot)’이라고 ν•©λ‹ˆλ‹€. 깃은 파일이 λ³€κ²½λ˜λ©΄ 이전 파일의 μƒνƒœλ₯Ό μ €μž₯ν•˜μ—¬ λ³€κ²½ 내역을 μΆ”μ ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ μ €μž₯된 νŒŒμΌλ“€μ˜ λ³€κ²½ 내역을 μ»€λ°‹ν•˜λ©΄, μ»€λ°‹μ˜ 이λ ₯을 톡해 파일의 λ³€κ²½ 내역을 좔적할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ, 깃은 λΆ„μ‚° 버전 관리 μ‹œμŠ€ν…œμ΄κΈ° λ•Œλ¬Έμ—, 둜컬 μ €μž₯μ†Œμ™€ 원격 μ €μž₯μ†Œμ˜ κ°œλ…μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. 둜컬 μ €μž₯μ†Œμ—μ„œ μž‘μ—…μ„ ν•˜κ³  μ»€λ°‹ν•œ λ‚΄μš©μ„ 원격 μ €μž₯μ†Œμ— ν‘Έμ‹œ(push)ν•˜μ—¬ λ‹€λ₯Έ κ°œλ°œμžμ™€ ν˜‘μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.



-->