[Git μž…λ¬Έ] Git의 기초 κ°œλ… - 2

2022. 8. 2. 12:38

μ €λ²ˆ ν¬μŠ€νŒ…μ—μ„œ μ ‘ν•œ GitμœΌλ‘œλŠ” λ‹€μŒκ³Ό 같은 μž‘μ—… 방식을 정말 νŽΈλ¦¬ν•˜κ²Œ ν•  수 μžˆλ‹€.

  1. λˆ„κ°€ 이 μž‘μ—…μ„ ν•  것인지 μ •ν•œλ‹€.
  2. 각자 맑은 것을 μž‘μ—…ν•œλ‹€.
  3. 각자 μž‘μ—…μ„ ν”„λ‘œμ νŠΈμ— ν•©μΉ  수 있게 κ³΅μœ ν•œλ‹€.
  4. μž‘μ—…ν•œ λ‚΄μš©μ„ λ¦¬λ·°ν•˜κ³  μ΅œμ’…μ μœΌλ‘œ ν”„λ‘œμ νŠΈμ— λ°˜μ˜ν•œλ‹€.

μ΄λŸ¬ν•œ 방식은 μ‹€μ œλ‘œ κ°œλ°œμžλ“€μ΄ ν˜‘μ—… ν”„λ‘œμ νŠΈλ₯Ό ν•  λ•Œ μ§„ν–‰ν•˜λŠ” 방식이닀. 이 λ•Œ, ν˜‘μ—…ν•˜λŠ” μ‘°μ§λ§ˆλ‹€ Git을 μ‚¬μš©ν•˜λŠ” 방법(κΉƒ μ»¨λ²€μ…˜)을 정해두고 약속에 μ§€μΌœ ν˜‘μ—…ν•œλ‹€.

 

Issue

ν”„λ‘œμ νŠΈμ—μ„œ ν•΄κ²°ν•΄μ•Ό ν•˜λŠ” 문제
  • Bug Report (버그 리포트) : 버그(ν”„λ‘œκ·Έλž¨μ΄ μ›ν•˜λŠ”λŒ€λ‘œ λ™μž‘ν•˜μ§€ μ•ŠλŠ” 것)을 μ‹ κ³ 
  • Enhancement : κΈ°λŠ₯ μΆ”κ°€ λ“±μ˜ ν”„λ‘œμ νŠΈ κ°œμ„  μ œμ•ˆ
  • μœ„ λ¬Έμ œλ“€μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•œ μž‘μ—…λ‹¨μœ„

κ°œλ°œμžλ“€μ˜ 'issue (이슈)'λΌλŠ” μš©μ–΄ μ‚¬μš©λ²•

  • νšŒμ›κ°€μž… κΈ°λŠ₯μ—μ„œ 버그 μžˆλ„€μš”. 이슈 λ“±λ‘ν•΄λ‘˜κ²Œμš”~
  • μ—¬κΈ° λ²„νŠΌμ„ λˆˆμ— 더 잘 λ„κ²Œ 고치면 쒋을 것 κ°™μ€λ°μš”? 이슈 λ“±λ‘ν•΄λ‘˜κ²Œμš”.
  • 6번 이슈 μ œκ°€ μ²˜λ¦¬ν• κ²Œμš”. 제 μ•žμœΌλ‘œ ν• λ‹Ήν•΄λ‘κ² μŠ΅λ‹ˆλ‹€.

 

Issue Tracker

= Issue Tracking Tool(이슈 좔적 도ꡬ), 이슈 트래컀
  • 이슈λ₯Ό 좔적(tracking)ν•˜λ©΄μ„œ 관리할 수 μžˆλŠ” 툴
  • Github, Jira, Trello, YouTrack λ“±

 

Githubμ—μ„œ Issue λ“±λ‘ν•˜κΈ°

  • Assignees(λ‹΄λ‹Ήμž) : 이 이슈 μž‘μ—…μž 및 μ—°κ΄€μž
  • Labels : 이 issueκ°€ μ–΄λ–€ μ’…λ₯˜μΈμ§€ λΆ„λ₯˜ν•΄μ£ΌλŠ” 것. Github이 μ œκ³΅ν•˜λŠ” κΈ°λ³Έ 라벨도 μ‚¬μš© κ°€λŠ₯ν•˜λ©°, 직접 λ§Œλ“€μ–΄ μ‚¬μš©λ„ κ°€λŠ₯.
    • bug : 예기치 μ•Šμ€ 문제 λ˜λŠ” μ˜λ„ν•˜μ§€ μ•Šμ€ λ™μž‘(버그)
    • documentation : λ¬Έμ„œλ₯Ό κ°œμ„ /μΆ”κ°€ν•΄μ•Ό ν•  ν•„μš”κ°€ 있음
    • duplicate : ν•΄λ‹Ή 이슈 λ˜λŠ” PR이 기쑴에 있음
    • enhancement : μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€/κ°œμ„  μš”μ²­
    • good first issue : 처음 ν”„λ‘œμ νŠΈμ— μ°Έμ—¬ν•˜λŠ” μ‚¬λžŒμ΄ μž‘μ—…ν•˜κΈ° μ‰¬μš΄ 이슈
    • help wanted : κ΄€λ¦¬μžκ°€ 문제 λ˜λŠ” PR μš”μ²­μ— λŒ€ν•œ 도움을 원함
    • invalid : 이슈 λ˜λŠ” PR μš”μ²­μ΄ 더이상 관련이 μ—†μŒ
    • question : 이슈 λ˜λŠ” ν’€ μš”μ²­μ— μΆ”κ°€ 정보가 ν•„μš”ν•¨
    • wontfix : λ¬Έμ œλ‚˜ PR μš”μ²­μ—μ„œ μž‘μ—…μ΄ κ³„μ†λ˜μ§€ μ•ŠμŒ

           * PR = Pull Request : λ‚΄κ°€ μˆ˜μ •ν•œ μ½”λ“œκ°€ μžˆμœΌλ‹ˆ λ‚΄ branchλ₯Ό κ°€μ Έκ°€ κ²€ν†  ν›„ 병합해달라 μš”μ²­ν•˜λŠ” 것

  • 이슈 번호 : #숫자 ν˜•νƒœ. μž‘μ—…ν•  λ•Œ issue 번호λ₯Ό μ •λ³΄λ‘œ μ‚¬μš©ν•˜κ²Œ λœλ‹€. repo κΈ°μ€€μœΌλ‘œ 1λΆ€ν„° μƒμ„±λœλ‹€.
  • Close Issue : 이슈λ₯Ό μ’…λ£Œν•œλ‹€. 더이상 이슈λ₯Ό λ‚¨κ²¨λ‘˜ ν•„μš”κ°€ μ—†κ±°λ‚˜ μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμ„ λ•Œ μ‹€μ‹œ. μ΄μŠˆκ°€ μ™œ μ’…λ£Œλ˜μ—ˆλŠ”μ§€λ₯Ό κΈ°λ‘ν•˜λ©΄ λ‚˜μ€‘μ— ν”„λ‘œμ νŠΈ 관리할 λ•Œ λ”μš± νŽΈλ¦¬ν•¨
  • Reopen Issue : 이슈 μ’…λ£Œ ν›„, ν•„μš”ν•  λ•Œ λ‹€μ‹œ 이슈 μ—΄μ–΄μ£ΌκΈ° κ°€λŠ₯

 

Branch

νŠΉμ • commitμ—μ„œ λ‚˜λ­‡κ°€μ§€μ²˜λŸΌ κ°ˆλΌμ Έλ‚˜μ™€ μž‘μ—…ν•˜λŠ” 것. 보톡 κΈ°λŠ₯λ³„λ‘œ 브랜치 이름을 λ§Œλ“€μ–΄ μž‘μ—…ν•¨
  • checkout : ν˜„μž¬ μž‘μ—…ν•˜λŠ” 브랜치λ₯Ό μ„ νƒν•˜λŠ” 것

 

Branch 이름 뢙이기

 

πŸ“Œ
브랜치λͺ…은 κ·œμΉ™μ„ κ°€μ§€κ³  잘 이름 μ§€μœΌλ©΄ ν”„λ‘œμ νŠΈ 관리가 μ‰¬μ›Œμ§
  • feature/이슈번호_관리 μ‰¬μš΄ 이름
    • feature : κΈ°λŠ₯ κ°œλ°œν•˜λŠ” λΈŒλžœμΉ˜μ— κ΄€ν–‰μ μœΌλ‘œ λΆ™μ—¬μ£ΌλŠ” 이름

 

Branch μš©μ–΄ μ•Œμ•„λ³΄κΈ°

  • origin/main : origin(μ—°κ²°λœ 원격 repo)의 main 브랜치
  • origin/HEAD : ν˜„μž¬ μž‘μ—…μ€‘μΈ commit을 가리킴. 즉, origin(μ—°κ²°λœ 원격 repo)의 μ΅œμ‹  commit
  • main : 둜컬 repo의 main 브랜치

 

 

Merge

병합. 브랜치λ₯Ό λ‹€λ₯Έ λΈŒλžœμΉ˜μ— ν•©μΉ˜λŠ” 것
  • 즉, νŠΉμ • 브랜치의 commit듀을 λ‹€λ₯Έ 브랜치의 commit 내역에 λͺ¨λ‘ λ°˜μ˜ν•˜λŠ” 것
  • μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œλŠ” μž‘μ—…λ‚΄μ—­μ„ λͺ¨λ‘ mergeν•  브랜치λ₯Ό 정해두고 μž‘μ—…ν•¨
  • μž‘μ—…μ΄ μ™„λ£Œλ˜μ–΄ mergeν•œ ν›„, μž‘μ—…ν–ˆλ˜ λΈŒλžœμΉ˜λŠ” 보톡 μ‚­μ œν•΄μ€€λ‹€ → λ‚˜μ€‘μ— 브랜치 섀정이 κΌ¬μ΄λŠ” 것 λ°©μ§€!

 

Flow

흐름. commitν•˜κ³  μž‘μ—…ν•˜λŠ” 방법
  • Github-Flow : μ›Ή ν”„λ‘œμ νŠΈ κ°œλ°œμ—μ„œ 많이 μ‚¬μš©ν•¨
  • GitLab-Flow
  • Git-Flow

 

Merge Conflict

Merge(병합)ν•  λ•Œ λ°œμƒν•˜λŠ” 좩돌
 
πŸ‘‰πŸ»
Git : μΆ©λŒν•˜λŠ” λ‚΄μš© 쀑 μ–΄λŠ λ‚΄μš©μ„ λ°˜μ˜ν• μ§€ λ¬»λŠ” λ©”μ‹œμ§€λ₯Ό μ£ΌλŠ” κΈ°λŠ₯이 있음
  • ν•˜λ‚˜μ˜ νŒŒμΌμ„ μ—¬λŸ¬ κ΅°λ°μ—μ„œ λ³€κ²½ν•˜λ €κ³  ν•˜λ©΄, μ—¬λŸ¬ λ³€κ²½ λ‚΄μš© 쀑 μ–΄λ–€ 것을 λΈŒλžœμΉ˜μ— λ°˜μ˜ν• μ§€ νŒŒμ•…ν•˜κΈ° μœ„ν•΄ 정보λ₯Ό μ œκ³΅ν•œλ‹€.
<<<<<<< HEAD
{ν˜„μž¬ 브랜치의 λ‹€λ₯Έ 파일 λ‚΄μš©}
=======
{μΆ©λŒλ‚˜λŠ” 브랜치λͺ… λ˜λŠ” commitμ—μ„œμ˜ λ‹€λ₯Έ 파일 λ‚΄μš©}
>>>>>>> μΆ©λŒλ‚˜λŠ” 브랜치λͺ… λ˜λŠ” commmit 아이디
  • 좩돌이 λ‚˜λŠ” λΆ€λΆ„ : <<<<<<< μ—¬κΈ° >>>>>>> 

ν•΄κ²° 방법 

  1. λ‚΄κ°€ μ›ν•˜λŠ” λŒ€λ‘œ νŒŒμΌμ„ μˆ˜μ •ν•œλ‹€.
  2. <<<<<<< HEAD , ======= , >>>>>>> μΆ©λŒλ‚˜λŠ” 브랜치λͺ… λ˜λŠ” commit 아이디 λ₯Ό μ§€μš΄λ‹€.
  3. κ·Έ ν›„ μ΄λ ‡κ²Œ μˆ˜μ •λœ νŒŒμΌμ„ λ‹€μ‹œ commit ν•œλ‹€.

BELATED ARTICLES

more