Page cover

Git / Github

Git: μ†ŒμŠ€μ½”λ“œ 버전 관리 μ‹œμŠ€ν…œ

μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ‹€ 보면 λ‹€μ–‘ν•œ λ²„μ „μ˜ μ½”λ“œλ₯Ό 관리해야 ν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€. κ°œλ°œμ„ μ§„ν–‰ν•˜λ©΄μ„œ 점점 μˆ˜μ •λ˜λŠ” 버전듀이 μžˆκ±°λ‚˜, λ‹€λ₯Έ μ‚¬λžŒλ“€κ³Ό ν˜‘μ—…ν•˜λ©΄μ„œ μ„œλ‘œ λ‹€λ₯Έ 뢀뢄에 λŒ€ν•œ 코딩을 ν•˜λŠ” κ²½μš°μ— 이λ₯Ό 톡합 κ΄€λ¦¬ν•΄μ€˜μ•Ό ν•œλ‹€. Git은 μ΄λŸ¬ν•œ μ†ŒμŠ€μ½”λ“œ νŒŒμΌλ“€μ˜ λ³€κ²½ 사항을 μΆ”μ ν•˜κ³ , μ—¬λŸ¬ μ‚¬μš©μžλ“€ κ°„μ˜ μž‘μ—…μ„ ν†΅ν•©ν•΄μ„œ κ΄€λ¦¬ν•΄μ£ΌλŠ” μ‹œμŠ€ν…œμ΄λ‹€.

μ½”λ”© μž‘μ—…μ„ 많이 ν•˜κ²Œ λœλ‹€λ©΄, git을 μ΄μš©ν•œ 버전 κ΄€λ¦¬λŠ” ν•„μˆ˜μ΄λ‹€. μ½”λ“œλ₯Ό μˆ˜μ •ν•˜λ©΄μ„œ μ‚¬μš©ν•˜λ‹€κ°€ κ°‘μžκΈ° μ˜ˆμ „μ˜ μ½”λ“œμ˜ 일뢀가 ν•„μš”ν•˜κ²Œ 될 μˆ˜λ„ 있기 λ•Œλ¬Έμ΄λ‹€. λ˜ν•œ μžμ‹ μ˜ 개발 과정이 μ–΄λ–»κ²Œ μ§„ν–‰λ˜μ–΄μ™”κ³ , μ–΄λ–€ 뢀뢄이 μˆ˜μ •λ˜μ–΄ μ™”λŠ”μ§€ κΈ°λ‘ν•˜λŠ” μš©λ„λ‘œλ„ μ€‘μš”ν•œ 역할을 ν•œλ‹€.

Branch: νŠΉμ • μž‘μ—…μ„ μœ„ν•œ λ³„λ„μ˜ 버전

Git Graphλ₯Ό μ΄μš©ν•΄ λ³Ό 수 μžˆλŠ” μ†ŒμŠ€μ½”λ“œ 버전 개발 ν˜„ν™©

Git λͺ…λ Ήμ–΄

Git을 μ‚¬μš©ν•˜λŠ” 방법은 터미널에 git λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•΄μ„œ μ†ŒμŠ€μ½”λ“œ νŒŒμΌμ„ μžμ‹ μ˜ μ €μž₯μ†Œμ— λ³΄λ‚΄κ±°λ‚˜ (push) λΆˆλŸ¬μ˜€λŠ” (pull) 방식이닀. Push와 pull λ“± μƒμ†Œν•œ κ°œλ…μ„ λ‚˜νƒ€λ‚΄λŠ” μš©μ–΄λ“€μ΄ λͺ‡ κ°€μ§€ μžˆλŠ”λ°, git을 μ΄μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” κΌ­ μ•Œμ•„λ‘¬μ•Ό ν•  λ‚΄μš©λ“€μ΄λ‹ˆ κ°œλ…μ„ μžμ„Ένžˆ 찾아보길 λ°”λž€λ‹€.

μ•„λž˜λŠ” gitμ—μ„œ μ‚¬μš©ν•˜λŠ” 기본적이고 λŒ€ν‘œμ μΈ μš©μ–΄λ“€μ΄λ‹€.

λͺ…μΉ­
μ„€λͺ…

status

ν˜„μž¬ 버전 관리 λŒ€μƒμΈ νŒŒμΌλ“€μ˜ μƒνƒœλ₯Ό μ˜λ―Έν•œλ‹€.

Tracked: 컀밋 된 파일, μŠ€ν…Œμ΄μ§€μ— μžˆλŠ” νŒŒμΌμ„ μ˜λ―Έν•œλ‹€. ν•΄λ‹Ή 파일이 μˆ˜μ •λ˜μ—ˆκ³  git으둜 μƒˆλ‘œμš΄ λ²„μ „μœΌλ‘œ μΈμ‹λ˜μ–΄ 좔적 된 νŒŒμΌμž„μ„ λ‚˜νƒ€λ‚Έλ‹€. 컀밋 λ˜κ±°λ‚˜ μŠ€ν…Œμ΄μ§€μ— μžˆλŠ” νŒŒμΌμ΄λΌλŠ” 것은 κ³§ μƒˆ λ²„μ „μœΌλ‘œ μ €μž₯μ†Œμ— 올릴 μ˜ˆμ •μž„μ„ λ‚˜νƒ€λ‚Έλ‹€.

Untracked: κ·Έ 외에 λ‹€λ₯Έ νŒŒμΌλ“€μ„ λ‚˜νƒ€λ‚Έλ‹€. κΈ°μ‘΄ 파일 쀑 μˆ˜μ • 사항이 μ—†κ±°λ‚˜, git의 μΆ”μ μ—μ„œ μ œμ™Έν•œ 파일 리슀트(.gitignore)에 λ“±λ‘λœ νŒŒμΌλ“€μ΄ ν•΄λ‹Ήν•œλ‹€.

add

μˆ˜μ •λœ νŒŒμΌλ“€μ„ commitν•˜κΈ° μœ„ν•œ 등둝을 ν•˜λŠ” 과정이닀.

μŠ€ν…Œμ΄μ§• (staging)이라고 ν‘œν˜„ν•˜κΈ°λ„ ν•œλ‹€.

commit

Stage에 올린 νŒŒμΌλ“€μ˜ λ³€κ²½ 이λ ₯을 λ“±λ‘ν•˜λŠ” 과정이닀. Commit을 ν•˜λŠ” μˆœκ°„ 영문/숫자둜 이루어진 40자리의 κ³ μœ ν•œ IDκ°€ λΆ€μ—¬λœλ‹€. μ €μž₯μ†Œμ—μ„œλŠ” 이 IDλ₯Ό 보고 각 commit을 κ΅¬λΆ„ν•˜κ³  μ„ νƒν•œλ‹€.

λͺ¨λ“  commit은 각각 ν•¨κ»˜ λ“±λ‘λ˜λŠ” λ©”μ„Έμ§€κ°€ ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€. 주둜 commit λ‚΄μ˜ λ³€κ²½ λ‚΄μš©μ„ μš”μ•½ν•œ λ‚΄μš©μ„ μž‘μ„±ν•œλ‹€.

push

λ“±λ‘λœ λ³€κ²½ 이λ ₯ (commit)을 원격 μ €μž₯μ†Œμ— κ³΅μœ ν•˜λŠ” 과정이닀. Upload λ˜λŠ” Sync 라고도 ν‘œν˜„ν•˜λŠ” κ²½μš°λ„ μžˆλ‹€.

fetch

pull

merge

checkout

μœ„ ν‘œμ—μ„œ λͺ…칭은 각 κΈ°λŠ₯에 λŒ€ν•œ μš©μ–΄λ₯Ό λ‚˜νƒ€λ‚΄κΈ°λ„ ν•˜λ©΄μ„œ λ™μ‹œμ— git μ‹œμŠ€ν…œμ„ μ‹€ν–‰ν•˜λŠ” λͺ…λ Ήμ–΄λ‘œ μ‚¬μš©λ˜κΈ°λ„ ν•œλ‹€. 예λ₯Ό λ“€μ–΄, commit μ΄λΌλŠ” λͺ…칭은 μ‹€μ œλ‘œ git λͺ…λ Ήμ–΄λ‘œ μ•„λž˜μ™€ 같이 μ‚¬μš©λœλ‹€.

$ git commit -m "컀밋 λ©”μ‹œμ§€"

Github: μ†ŒμŠ€μ½”λ“œ μ €μž₯μ†Œ

Github의 캐릭터 이름은 μ˜₯ν† μΊ£ (Octocat)이닀. κ·€μ—¬μš΄ 얼꡴에 κ·Έλ ‡μ§€ λͺ»ν•œ 신체λ₯Ό κ°€μ§€κ³  μžˆλ‹€...

Git을 μ‚¬μš©ν•΄μ„œ 좔적 / κ΄€λ¦¬ν•˜λŠ” μ†ŒμŠ€μ½”λ“œλ“€μ€ λ³„λ„μ˜ μ €μž₯μ†Œμ— μ €μž₯λ˜μ–΄μ•Ό λ‚˜μ€‘μ— ν•„μš”ν•  λ•Œ λΆˆλŸ¬μ˜€κ±°λ‚˜ μ΅œμ‹  μ½”λ“œλ“€κ³Ό 비ꡐ해볼 수 μžˆλ‹€. κΉƒν—ˆλΈŒ (GitHub)λŠ” git으둜 κ΄€λ¦¬λ˜λŠ” μ†ŒμŠ€μ½”λ“œλ₯Ό μ›κ²©μœΌλ‘œ μ—°κ²°ν•΄μ„œ ν•΄λ‹Ή μ†ŒμŠ€μ½”λ“œ νŒŒμΌμ„ μ €μž₯ν•΄μ£ΌλŠ” μ„œλΉ„μŠ€μ΄λ‹€. 2008년에 μ„€λ¦½λ˜μ—ˆμœΌλ©°, ν˜„μž¬ microsoftκ°€ μΈμˆ˜ν–ˆλ‹€.

Git을 기반으둜 μ €μž₯μ†Œλ₯Ό μ œκ³΅ν•΄μ£ΌλŠ” μ„œλΉ„μŠ€λŠ” github 말고도 λͺ‡ κ°€μ§€ μ’…λ₯˜κ°€ 더 μžˆλ‹€. 특히 κΈ°μ—…μ—μ„œ μ‚¬μš©λ˜λŠ” μ €μž₯μ†ŒμΈ 'Bitbucket'이 λŒ€ν‘œμ μ΄λ‹€. ν•˜μ§€λ§Œ Bitbucket은 곡동 μž‘μ—…μžκ°€ 5λͺ…을 λ„˜μ–΄κ°ˆ κ²½μš°μ—λŠ” 유료둜 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. Github이 κ°€μž₯ λŒ€μ€‘μ μœΌλ‘œ 많이 μ‚¬μš©λ˜κ³  μžλ£Œλ„ 많이 μžˆμœΌλ―€λ‘œ μΆ”μ²œν•˜λŠ” μ €μž₯μ†Œμ΄λ‹€.

곡식 λ¬Έμ„œλ„ 잘 μ •λ¦¬λ˜μ–΄ μžˆμœΌλ‹ˆ, λ§Žμ€ λ‚΄μš©μ„ μ°Έκ³ ν•΄μ„œ μ‚¬μš©ν•  수 μžˆλ‹€.

Last updated