πŸ’» 곡뢀 기둝/🀝 Github

GIT&GITHUB | μˆ˜μ—… λ©”λͺ¨ 3μ£Ό

  • -

GIT & GITHUB μˆ˜μ—… λ©”λͺ¨

 

PR(Pull Request, ν’€λ¦¬ν€˜μŠ€νŠΈ)

  • λ‚΄ μž‘μ—… 내역을 λ°”λ‘œ merge ν•˜μ§€ μ•Šκ³ , μ°Έμ—¬ν•˜κ³  μžˆλŠ” ν”„λ‘œμ νŠΈμ— λ‚΄ μž‘μ—…(branch)λ₯Ό merge 해달라고 μš”μ²­(request) λ₯Ό λ³΄λ‚΄λŠ” 것.

PR κ³Όμ •

 

1)

μžμ‹ μ˜ μž‘μ—… λ‚΄μš©μ— λŒ€ν•΄μ„œ merge μš”μ²­

2)

PR 전에 commit 을 μΆ”κ°€ν•΄ μ˜κ²¬μ„ μ œμ‹œν•  수 있음

3)

μ˜κ²¬μ— λŒ€ν•œ 반영 ν›„ κ΄€λ¦¬μžκ°€ 확인 ν–ˆλ‹€λ©΄ ν™”λ‹΅κ³Ό ν•¨κ»˜ merge

4) 브랜치 PR 을 μš”μ²­ ν›„ 브랜치λ₯Ό μ‚­μ œν•  타이밍

PR의 μΆ”κ°€ μš”μ²­μ„ λ°›κ³  승인 μ „κΉŒμ§€λŠ” 브랜치λ₯Ό μ‚­μ œν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€.

 


 

λ‹€λ₯Έ repo 에 PR ν•˜κΈ° - fork κ°œλ…

fork(포크)

  • 원본 μ†ŒμŠ€μ½”λ“œλ₯Ό λ³΅μ‚¬ν•΄μ„œ μƒˆλ‘œμš΄ 독립적인 μ†Œν”„νŠΈμ›¨μ–΄λ‘œ κ°œλ°œν•˜λŠ” 것
  • μ–΄λ–€ λ¬Έμ„œλ₯Ό λ³΅μ‚¬ν•΄μ„œ κ·Έ μœ„μ— λ‚΄κ°€ μ›ν•˜λŠ”λŒ€λ‘œ μˆ˜μ •ν•΄μ„œ μ‚¬μš©

 


 

amend(μ–΄λ§¨λ“œ)

  • μž‘μ—… ν•˜λ‹€κ°€ commit λ©”μ„Έμ§€μ˜ μ˜€νƒ€κ°€ λ‚¬κ±°λ‚˜ 잊고 add(staging) ν•˜λŠ” 경우 μ΅œμ‹ μ˜ commit 을 μˆ˜μ •
  • κ°€μž₯ μ΅œκ·Όμ— 올라온 commit 만 μˆ˜μ •μ΄ κ°€λŠ₯
  • 주의) μ–΄λ–€ 것을 λ˜λŒλ ΈλŠ”μ§€ μ•Œ 수 μ—†μŒ
  • 주의) μˆ˜μ • μ‹œ λ°œμƒν•˜λŠ” κ°•μ œν‘Έμ‰¬ 사항은 κΌ­ μžμ‹ μ˜ μž‘μ—… λΈŒλžœμΉ˜μ—μ„œλ§Œ μ‚¬μš©ν•  것

 


 

revert(λ¦¬λ²„νŠΈ)

  • μ–΄λ–€ λ‚΄μš©μ„ λ˜λŒλ ΈλŠ”μ§€ μƒˆλ‘œμš΄ commit 을 λ‚¨κΈ°λŠ” 것

 


 

reset(리셋) : 항상 μ‹ μ€‘ν•˜κ²Œ μ‚¬μš©

  • μ˜› μž‘μ—… λ‚΄μ—­μœΌλ‘œ λ˜λŒλ¦¬λŠ” 것.
  • soft : commit 듀을 되돌리고 λ³€κ²½λœ 파일 μž‘μ—… 내역은 λ³΄μ‘΄ν•΄μ„œ 파일 λ³€κ²½μ‚¬ν•­μœΌλ‘œ λ³΄μ—¬μ€λ‹ˆλ‹€. μ΄λ•Œ 변경사항은 add λ˜μ§€ μ•Šμ€ μƒνƒœλ‘œ λ³΄μž…λ‹ˆλ‹€. 
  • mixed : commit 듀을 되돌리고 λ³€κ²½λœ 파일 μž‘μ—… 내역은 λ³΄μ‘΄ν•΄μ„œ 파일 λ³€κ²½μ‚¬ν•­μœΌλ‘œ λ³΄μ—¬μ€λ‹ˆλ‹€. μ΄λ•Œ 변경사항은 add 된 μƒνƒœλ‘œ λ³΄μž…λ‹ˆλ‹€. (보편적으둜 μ‚¬μš©)
  • hard : commit 듀을 되돌리고 κ·Έλ™μ•ˆ μž‘μ—…ν–ˆλ˜ λͺ¨λ“  것도 μ—†μ• λ²„λ¦½λ‹ˆλ‹€. 즉, μž‘μ—…λ‚΄μ—­μ„ 볡원할 수 μ—†μŠ΅λ‹ˆλ‹€. (λ˜λ„λ‘ μ‚¬μš©ν•˜μ§€ 말자)

 


 

stash(μŠ€νƒœμ‹œ)

  • ν”„λ‘œμ νŠΈμ˜ 변경사항을 μž„μ‹œμ μœΌλ‘œ λ³΄κ΄€ν•΄λ‘˜ λ•Œ μ‚¬μš©
  • 예λ₯Ό λ“€λ©΄, λ‹€λ₯Έ branch 둜 체크아웃 ν•˜λŠ” 경우 ν˜„μž¬ branch 의 변경사항이 μ‚¬λΌμ§€κ²Œ λ©λ‹ˆλ‹€. 아직 μž‘μ—… μ€‘μ΄λΌμ„œ commit ν•˜μ§€ μ•Šκ³  stash둜 λ³€κ²½μ‚¬ν•­λ§Œ 보관
  • λ‚΄κ°€ μ–΄λ–€ 변경사항 stash λ₯Ό μ €μž₯ν•΄λ‘μ—ˆλŠ”μ§€λ₯Ό νŒŒμ•…ν•˜κ³  λ˜λ„λ‘ 이전 stash μ—μ„œ νŽΈμ§‘ν•˜λ˜ νŒŒμΌμ„ λΆˆλŸ¬μ™€μ„œ μž‘μ—…ν•˜λŠ” μŠ΅κ΄€ 가지기

 

 

 

μž‘μ—…μœΌλ‘œ μ˜μ‚¬μ†Œν†΅

Convention(μ»¨λ²€μ…˜) : ν”„λ‘œκ·Έλž˜λ° μ„Έκ³„μ—μ„œ μ„œλ‘œ 쑰직(νŠΉμ • κΈ°μˆ μ„ μ‚¬μš©ν•˜λŠ” μ‚¬λžŒλ“€, νšŒμ‚¬ λ“±)μ—μ„œ ν•©μ˜ν•œ κ·œμΉ™

λ§€λ„ˆκ°€ μ‚¬λžŒμ„ λ§Œλ“ λ‹€(Manners maketh man)

ν‚ΉμŠ€λ§¨ λŒ€μ‚¬ 쀑

 

commit λ©”μ‹œμ§€ μ»¨λ²€μ…˜(commit message convention)

 

ull.im

울렀 퍼지닀.<br/> 반ν–₯ν•˜λ‹€.<br/> 곡λͺ…ν•˜λ‹€.

blog.ull.im

 

쒋은 git 컀밋 λ©”μ‹œμ§€λ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•œ 7가지 약속 : NHN Cloud Meetup

git컀밋

meetup.toast.com

 

  • 쒋은 commit λ©”μ‹œμ§€, λ‹¨μœ„λ‘œ μž‘μ„±ν•˜κ²Œ 되면
    • μ–΄λ–€ μž‘μ—…μ„ ν–ˆλŠ”μ§€ commit history (commit log)만 보고 μ•Œ 수 μžˆλ‹€
    • 버그λ₯Ό 찾을 λ•Œμ™€ μ½”λ“œ 고치기 쉽닀
    • λ‹€λ₯Έ μ‚¬λžŒμ΄ μ½”λ“œλ₯Ό 리뷰할 λ•Œ νŽΈν•˜λ‹€

 

 

좜처 | 슀파λ₯΄νƒ€μ½”λ”©ν΄λŸ½

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.