관리 메뉴

Jin's Dev Story

[Git] Gitμ΄λž€? λ³Έλ¬Έ

Tools/Git

[Git] Gitμ΄λž€?

woojin._. 2024. 6. 14. 13:03
πŸ’‘ Gitμ΄λž€, 버전 관리 μ‹œμŠ€ν…œ(Version Control System, VCS)의 ν•˜λ‚˜μ΄λ‹€.

 

  • Git은 λ‘œμ»¬μ—μ„œ 버전 관리 μ‹œμŠ€ν…œμ„ μš΄μ˜ν•˜λŠ” 방식
  • Git은 μ—¬λŸ¬ λͺ…이 효율적으둜 ν˜‘μ—…ν•˜κΈ° μœ„ν•œ νˆ΄μ΄λ‹€.
  • Git은 μ˜€ν”ˆμ†ŒμŠ€μ΄λ―€λ‘œ λˆ„κ΅¬λ‚˜ μ‚¬μš©ν•  수 μžˆλ‹€.
  • Git을 μ‚¬μš©ν•˜λ©΄ μ—¬λŸ¬ 버전을 λ™μ‹œμ— 관리할 수 μžˆμ–΄ λ°μ΄ν„°μ˜ μ•ˆμ •μ„±μ΄ 보μž₯λœλ‹€.
  • κ°œλ°œμžλ“€ κ°„μ˜ μ½”λ“œ κ³΅μœ κ°€ ν•„μš”ν•  λ•Œλ§Œ λ„€νŠΈμ›Œν¬κ°€ ν•„μš”
  • SVNκ³Ό 달리 각 κ°œλ°œμžκ°€ 쀑앙 μ§‘μ€‘λœ μ„œλ²„ μ €μž₯μ†Œμ™€ λ…λ¦½λœ μƒνƒœλ‘œ μž‘μ—…ν•  수 있음

Git을 μ‚¬μš©ν•˜λŠ” 이유

  1. 효율적인 ν˜‘μ—…
    • κ°œλ°œμžλ“€μ˜ 버전이 λ‹€λ₯΄λ©΄ νŠΉμ • 개발자의 파일이 μ—†μ–΄μ§ˆ 수 있음
    • λ™μ‹œμ— μ—¬λŸ¬ κ°œλ°œμžλ“€μ΄ ν•œ νŒŒμΌμ— λŒ€ν•΄ μž‘μ—…ν•˜λŠ” 경우 git을 μ‚¬μš©ν•˜λ©΄ μžλ™μœΌλ‘œ μ²˜λ¦¬λ˜λ―€λ‘œ νš¨μœ¨μ μž„
  2. μ‰¬μš΄ 버전관리
    • 백업본을 많이 λ§Œλ“€μ–΄μ„œ κ΄€λ¦¬ν•˜λŠ”λ° git은 각각의 νŒŒμΌμ„ μŠ€λƒ…μƒ· ν˜•νƒœλ‘œ μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— μ‰¬μš΄ 버전관리가 λœλ‹€

Git의 νŠΉμ§•

  1. κ°€μ§€μΉ˜κΈ°μ™€ 병합
    • μ—¬λŸ¬κ°€μ§€ μž‘μ—…μ„ λ§Œλ“€μ–΄μ„œ 개발, ν…ŒμŠ€νŠΈλ₯Ό 거쳐 메인 μ½”λ“œμ—μ„œ 배포λ₯Ό ν•˜λŠ”λ° 독립성이 μœ μ§€ 되기 λ•Œλ¬Έμ— 맀우 도움이 됨
  2. 가볍고 λΉ λ₯΄λ‹€
    • Git은 둜컬둜 λ™μž‘ν•¨
  3. λΆ„μ‚° μž‘μ—…
  4. 데이터 보μž₯
  5. μ€€λΉ„ μ˜μ—­ (Staging area)
    • μˆ˜μ • μ „ κ²€ν†  단계
  6. μ˜€ν”ˆ μ†ŒμŠ€
    • λˆ„κ΅¬λ‚˜ μ‚¬μš©ν•  수 μžˆλŠ” μ†ŒμŠ€

쀑앙집쀑식 버전 관리 μ‹œμŠ€ν…œ (Centralized Version Control System, CVCS)

  • Subversion(SVN)
  • 쀑앙 μ‹œμŠ€ν…œμ—μ„œ μ—¬λŸ¬ κ°œλ°œμžλ“€μ΄ μ½”λ“œλ₯Ό κ³΅μœ ν•˜λŠ” 방식
  • 쀑앙 μ„œλ²„μ—μ„œ μ €μž₯μ†Œλ₯Ό κ΄€λ¦¬ν•˜κ³ , κ°œλ°œμžλ“€μ΄ μ„œλ²„μ™€ ν†΅μ‹ ν•˜μ—¬ μ½”λ“œ λ³€κ²½ 내역을 μ €μž₯ν•˜κ³  μ—…λ°μ΄νŠΈν•¨
  • 항상 λ„€νŠΈμ›Œν¬κ°€ ν•„μš”

λΆ„μ‚° 버전 관리 μ‹œμŠ€ν…œ(Distributed Version Control System, DVCS)

  • Git
  • 각 개발자의 둜컬 μ €μž₯μ†Œμ— 전체 μ½”λ“œ 이λ ₯이 볡제되며, κ°œλ°œμžλ“€μ€ 둜컬 μ €μž₯μ†Œμ—μ„œ μž‘μ—…ν•œ ν›„, λ‹€λ₯Έ μ‚¬μš©μžμ™€ λ³€κ²½ 내역을 κ΅ν™˜ν•˜λ©° 톡합함
  • 컀밋(commit), 브랜치(branch), 병합(merge), νƒœκ·Έ(tag), 좩돌 ν•΄κ²°(conflict resolution) 등이 있음
  • κ°œλ°œμžλ“€μ€ μ½”λ“œμ˜ μ•ˆμ •μ„±μ„ μœ μ§€ν•˜κ³ , νŒ€μ› κ°„μ˜ ν˜‘μ—…μ„ μ›ν™œν•˜κ²Œ 진행할 수 있음

'Tools > Git' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Git] Git ν”„λ‘œμ νŠΈ 올리기  (0) 2024.06.14
[Git] GitLab  (0) 2024.06.14
[Git] Git λͺ…λ Ήμ–΄  (1) 2024.06.14
[Git] Git μ„€μΉ˜  (0) 2024.06.14
[Git] 이미 Pushν•œ 컀밋 μˆ˜μ •ν•˜κΈ°  (0) 2023.09.30