-
λ°μν
#What is Git?
Gitκ³Ό λ²μ κ΄λ¦¬ μμ€ν (Version Control System)
Gitμ΄λ?
Gitμ μννΈμ¨μ΄ κ°λ°μμ μ¬μ©λλ λΆμ° λ²μ κ΄λ¦¬ μμ€ν (Distributed Version Control System, DVCS) μ€ νλ
리λμ€ ν λ°μ¦(Linus Torvalds)κ° κ°λ°νμμΌλ©°, μννΈμ¨μ΄ κ°λ°μμ μμ€ μ½λ κ΄λ¦¬μ μ£Όλ‘ μ¬μ©
Gitμ μ£Όμ λͺ©νλ μλ, λ°μ΄ν° 무결μ±, κ·Έλ¦¬κ³ λΆμ° μμ€ν μ μ§μμ μν μμ ν λΆμ°μ ν¬ν¨ν΄ λΉμ ν μμ νλ¦μ μ§μνλ κ²
λ²μ κ΄λ¦¬ μμ€ν (Version Control System, VCS)μ΄λ?
λ²μ κ΄λ¦¬ μμ€ν (VCS)μ μκ°μ λ°λΌ λ¬Έμλ μμ€ μ½λμ κ°μ μ 보μ λ³νλ₯Ό κΈ°λ‘νκ³ , νΉμ μμ μ λ²μ μ λ€μ λΆλ¬μ¬ μ μλ μμ€ν
μ΄λ° μμ€ν μ ν΅ν΄, μ¬λ¬ κ°λ°μλ€μ΄ λμμ κ°μ νλ‘μ νΈμ μμ μ ν μ μμΌλ©°, κ° λ²μ κ° μ°¨μ΄μ μ λ³Ό μ μκ³ , μ΄μ λ²μ μΌλ‘ λλμκ° μ μμΌλ©°, μμΉ μλ λ³κ²½μ μ½κ² μ°ΎμλΌ μ μμ
VCSλ ν¬κ² λ κ°μ§ μ νμΌλ‘ λλ¨
- μ€μμ§μ€μ λ²μ κ΄λ¦¬ μμ€ν (Centralized Version Control System, CVCS): CVS, Subversion, Perforce λ±, μ΄ μμ€ν μ λ¨μΌ μλ²κ° λͺ¨λ νμΌμ λ²μ μ μ μ§νκ³ , μ¬λ¬ ν΄λΌμ΄μΈνΈκ° μλ²λ‘λΆν° νμΌμ λ°μ μ¬μ©
- λΆμ° λ²μ κ΄λ¦¬ μμ€ν (Distributed Version Control Systems, DVCS): Git, Mercurial, Bazaar, Darcs λ±, μ΄ μμ€ν μ ν΄λΌμ΄μΈνΈκ° μλ²μ νμΌμ ‘λ³΅μ ’, μ΄λ κ² ν¨μΌλ‘μ¨ λ€νΈμν¬μ μ κ·Όν μ μλ μν©μμλ κ°λ°μ κ³μν μ μκ³ , 볡μ‘ν λΈλμΉ μμ μ΄ κ°λ₯
VCSμ μ¬μ©μ κ°λ° νμ ν¨μ¨μ±, μμ°μ±μ ν¬κ² ν₯μμν€λ©°, μ½λμ μμ μ±μ μ μ§νκ³ , μ€μλ₯Ό μ½κ² 볡ꡬν μ μκ² λμ
Gitμ μ€μμ±: μ κ°λ°μλ€μ Gitμ μ¬μ©ν΄μΌ ν κΉ
Gitμ κ°λ° νλ‘μΈμ€μμ μ€μν λꡬ
- λ²μ κ΄λ¦¬: κ°λ° κ³Όμ μμ μ§μμ μΈ μ½λ λ³νλ₯Ό μΆμ νκ³ κ΄λ¦¬νκΈ° μν΄ Gitμ μ¬μ©, κ°κ°μ λ³κ²½μ¬νμ “μ»€λ°(commit)” λ¨μλ‘ μ μ₯ν΄ μΈμ λ μ§ νΉμ μμ μ μ½λ μνλ‘ λμκ° μ μκ² ν¨, Gitμ ν΅μ¬ κΈ°λ₯ μ€ νλλ νλ‘μ νΈμ λ²μ μ κ΄λ¦¬νλ κ²
- νμ λꡬ: Gitμ ν΅ν΄ μ¬λ¬ κ°λ°μλ€μ΄ λμμ κ°μ νλ‘μ νΈ μμ κ°λ₯, Gitμ “λΈλμΉ(branch)” κΈ°λ₯μ κ°λ°μκ° λ 립μ μΌλ‘ μμ νλ λμμ νλ‘μ νΈμ λ€λ₯Έ λΆλΆμ μν₯μ μ£Όμ§ μλλ‘ ν¨, κ°λ°μ΄ μλ£λ ν μ΄λ¬ν λ³κ²½μ¬νλ€μ “λ³ν©(merge)”ν΄ λ©μΈ μ½λμ λ°μνλ κ²μ΄ κ°λ₯
- μ½λμ μμ μ± μ μ§: μ½λμμ μ¬κ°ν μ€λ₯κ° λ°μν κ²½μ°, Gitμ΄ μ΄μ μ μμ μ μΈ μνλ‘ μ½κ² λμκ° μ μλλ‘ ν¨, μ΄λ νλ‘λμ νκ²½μμ ν° λ¬Έμ κ° λ°μνμ λ λΉ λ₯΄κ² λμνλ κ²μ΄ κ°λ₯νκ² νλ©°, νλ‘μ νΈμ μμ μ±μ μ μ§νλλ° μ€μν μν
- μ½λ 리뷰 λ° μΆμ : Gitμ μ¬μ©ν΄ μ΄λ€ κ°λ°μκ° μΈμ μ΄λ€ λ³κ²½μ¬νμ λ§λ€μλμ§ μΆμ νλ κ²μ΄ κ°λ₯, μ΄λ μ½λ 리뷰 κ³Όμ μμ λ§€μ° μ μ©νκ³ , λ²κ·Έλ₯Ό μ°Ύκ³ μ΄ν΄νλ λ° λν λμλ¨
- λ°°ν¬ κ΄λ¦¬: GitμΌλ‘ νλ‘μ νΈμ μ¬λ¬ λ²μ μ κ΄λ¦¬ν¨μΌλ‘μ¨, νΉμ λ²μ μ λν λ°°ν¬κ° κ°νΈ, μ΄λ Continuous Integration(CI) λ° Continuous Deployment(CD) νμ΄νλΌμΈκ³Ό ν¨κ» μ¬μ©λΌ ν¨μ¨μ μΈ λ°°ν¬ κ΄λ¦¬ κ°λ₯νκ² ν¨
μ¦,
Gitμ κ°λ°μκ° μ½λμ λ²μ μ κ΄λ¦¬νκ³ , ν¨κ³Όμ μΈ νμ κ³Ό μ½λμ μμ μ±μ μ μ§νλ©° μ½λ λ³κ²½ μ¬νμ μΆμ νκ³ λ°°ν¬λ₯Ό κ΄λ¦¬νλλ° νμμ μΈ λꡬ
μ΄λ¬ν μ΄μ λ‘ Gitμ νλμ μννΈμ¨μ΄ κ°λ° νμμ νμμ μΌλ‘ μ¬μ©νλ λꡬ
Gitμ κΈ°λ‘μ λ¨κΈ°λ κ²
#Git ≠ Github

Git:
λΆμ° λ²μ κ΄λ¦¬ μμ€ν (Distributed Version Control System, DVCS)
μ¬λ¬ κ°λ°μκ° λμμ μμ νλ κ²μ΄ κ°λ₯νλλ‘ λκ³ , μ€λ₯κ° λ°μνμ λ μ΄μ λ²μ μΌλ‘ μ½κ² λλ릴 μ μμ
λ‘컬 μ»΄ν¨ν° κ΄λ¦¬, Gitμ λ‘컬 μμ€ν μμ λμ, μΈν°λ· μμ΄ μ€νλΌμΈμμ λν λμ κ°λ₯
Github:
GitHubλ Gitμ μ¬μ©νλ νλ‘μ νΈλ₯Ό νΈμ€ν νλ μΉ κΈ°λ° μλΉμ€
κ°λ°μλ GitHubλ₯Ό ν΅ν΄ μμ€ μ½λλ₯Ό μ μ₯νκ³ κ³΅μ νλ κ²μ΄ κ°λ₯
GitHubλ νμ λꡬλ₯Ό μ κ³΅ν΄ λ€λ₯Έ κ°λ°μλ€κ³Ό ν¨κ» μ½λλ₯Ό κ°λ°νκ±°λ μμ ν μ μμ
GitHubμ Gitμ κΈ°λ₯μ νμ©ν΄ λ²μ κ΄λ¦¬νλ κ²μ΄ κ°λ₯νλ©° μΆκ°μ μΌλ‘ λ€μ κ°μ κΈ°λ₯ μ 곡
- μ΄μ νΈλνΉ: λ²κ·Έ 리ν¬ν , κΈ°λ₯ μμ², μ΄ μΈ νλ‘μ νΈμ κ΄λ ¨λ λ¬Έμ λ€μ νΈλνΉνκ³ κ΄λ¦¬
- ν 리νμ€νΈ: κ°λ°μ μμ μ΄ μμ ν μ½λλ₯Ό μλ³Έ μ μ₯μμ λ³ν©(merge)νλ κ²μ μμ²ν μ μμ
- μ½λ 리뷰 κ³Όμ μ©μ΄νκ² ν¨
- GitHub Actions: CI/CD(Continuous Integration/Continuous Deployment)μ κ°μ μλν νλ‘μΈμ€ μ½κ² ꡬννλλ‘ λμ
μ¦,
Gitμ μμ€ μ½λμ λ²μ κ΄λ¦¬λ₯Ό μν λꡬ
GitHubμ Gitμ μ¬μ©νλ νλ‘μ νΈλ₯Ό μ¨λΌμΈ μμμ 곡μ νκ³ νμ νλ μλΉμ€
Gitμ λ‘컬μμ λμνμ§λ§, GitHubμ μΈν°λ· μ°κ²° νμ
#Git μ€μΉ
Git μ¬μ©νλ 2κ°μ§ λ°©λ²
- CLI: λͺ λ Ήμ΄ κΈ°λ° λ²μ κ΄λ¦¬, ν°λ―Έλ μμ
- GUI: κ·Έλν½ κΈ°λ° λ²μ κ΄λ¦¬ ν΄, μμ€νΈλ¦¬, GitHub Desktop, Git Kraken λ±
Git μ€μΉ for MacOS
λκ° μ΅μ λ§₯λΆμλ git μ€μΉλμ΄ μμ
ν°λ―Έλμ μ΄μ΄ git —version νμΈ
git --version
λ²μ νμΈ μ - μμ²λΌ λ²μ μ λ³΄κ° λμ¨λ€λ©΄ μ€μΉλ κ²
μ²μ git μ€μΉ ν νμν μ€μ
- gitμ λ²μ κ΄λ¦¬ μΆμ μμ€ν μ μν λ²μ μ μμ±ν μ¬λμ μ 보λ₯Ό κΈ°λ‘νκΈ° μν΄μλ
$ git config --global user.name "μ μ λλ€μ" # λλ€μμ github, gitlabμμ μ¬μ©ν λλ€μ μΆμ² $ git config --global user.email "μ μ μ΄λ©μΌ" # μ΄λ©μΌμ μ€μ githubμ΄λ gitlab κ°μ λ©μΌ- if) μ€μΉ μμ μ½λ μλν° μ€μ μ vscodeλ‘ μ§μ νμ§ μμκ±°λ MacOSλ₯Ό μ¬μ©νλ€λ©΄
git config --global core.editor "code --wait" # vscodeλ‘ λ³κ²½- MacOSμμ μ μ€μ μ ν΄λ vscodeκ° μ΄λ¦¬μ§ μλλ€λ©΄ μ§μ vscodeλ₯Ό μ€νμμΌ “Command+Shift+P”λ₯Ό μ λ ₯νκ³ λͺ λ Ήνλ νΈμ “shell command” μ λ ₯ν ν PATH code λͺ λ Ή μ€μΉ μ ν
- Github μ격 μ μ₯μλ₯Ό κ°μ ν λ λ‘컬 μ μ₯μμ λ±λ‘ν μ΄λ©μΌλ‘ κ°μ νλ κ² κΆμ₯
λ°μν'Git' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Git] Merge vs Rebase / Fetch vs Pull μ°¨μ΄ (0) 2026.07.07 [Git] Atomic Commitκ³Ό μ’μ μ»€λ° λ©μμ§ μμ±λ² (0) 2026.06.05 Basic Git Workflow : Add, Commit (0) 2026.05.20 Git Repository (0) 2026.05.20 κΈ°λ³Έ ν°λ―Έλ λͺ λ Ήμ΄ (0) 2026.05.20