Frontend 개발자 - hyo.loui

Git - issue, branch, merge (협업 하기) 본문

Git

Git - issue, branch, merge (협업 하기)

hyo.loui 2022. 11. 21. 20:05

❤️‍🔥TIL : Today I Learned

 

Issues

  1. 이슈는 쉽게 누가 이 작업을 할 것인지 정하는 것
  2. 해결을 위한 작업 단위
  • issue 는 내가 할 작업, 기능 추가, 버그 리포트 등 여러 방식으로 사용할 수 있습니다.
  • 협업을 하기 위해 issue 를 만들어 누가 작업할지 정하고, 브랜치를 만들어 작업할 공간을 나눕니다.

프로젝트에서 각자 개발 담당의 역할을 정하거나
문제가 발생했을 경우 github 에서 issue 를 활용하여 게시글처럼 활용이 가능합니다
참여자를 할당하고 태그를 삽입하여 어떠한 문제(상황)인지 간편하게 표시하며
댓글(코멘트)을 남길 수 있습니다! 잘 활용한다면 정말 멋진 프로젝트가 될거에요~

  • Git 은 프로젝트 버전 관리, 작업 단위 나누기, 협업 등 유용하게 사용되는 하나의 프로그램 입니다
  • Github 은 Git 으로 된 프로젝트를 공유할 수 있도록 저장 공간을 제공하고, Git 편하게 사용하기 위한 여러가지 부가기능을 가지고 있어요. Github 를 사용하기 위해서는 Git 이 협업할 때 필수입니다. + 개발자들의 sns 입니다.

 

커밋 메세지에 이슈번호를 삽입하면 해당 이슈에 자동으로 업로드되어 이슈를 최신화 할 수 있습니다
이렇게 #과 함께 해당하는 이슈번호를 입력하면 자동으로 github 에 있는 이슈로 커밋내역이 업로드 됩니다
git commit -m "layout resizing #1"

 

 


 

branch

  1. 브랜치는 각자 맡은 것을 작업한다.
  2. 기능 도는 목적에 맡게 브랜치로 나누어 작업할 수 있다.
  • 협업을 하기 위해 issue 를 만들어 누가 작업할지 정하고, 브랜치를 만들어 작업할 공간을 나눕니다.
  • 브랜치(branch)는 특정 commit 에서 갈라져나와 작업할 수 있습니다.
  • 우리는 기능별로 이름을 만들어주어 브랜치에 작업 해야 합니다.
  • 작업할 브랜치로 바꾸는 것을 체크아웃(checkout)이라고 합니다. 체크아웃된 브랜치에만 commit 이 반영됩니다.

 

 

브랜치 관련 명령어

 

브랜치 생성

git branch <branchname>

 

브랜치 전환하기

git checkout <branch>

 

브랜치 삭제하기

git branch -d <branchname>

 

 

브랜치명은 규칙을 가지고 잘 이름 지으면 프로젝트 관리가 쉬워집니다. 작업이 완료되면 작업한 브랜치는 merge 가 끝나면 보통 삭제해줍니다. 이로써 나중에 브랜치 설정이 꼬이는 것을 방지할 수 있습니다. 그럼 아래에서는 merge 에 대해서 알아보겠습니다.

 

merge

머지가 머지(?)
== 브랜치와 브랜치를 합치는 것!
 
각자 작업을 branch 로 분류하여 나뉘어 작업이 종료된 후 merge 라는 기능으로 브랜치를 합쳐야 합니다
통상 main 브랜치에 작업 내역을 모두 합치는 것으로 정하고,
main 브랜치에서는 작업하지 않고 merge 하는 용도로써 프로젝트의 기준이 됩니다

 

  • 1. merge 명령 전 기준이 되는 branch 로 checkout 해야 합니다
git checkout <main>

 

  • 2. merge 명령으로 기준 브랜치에서 해당 브랜치를 불러옵니다.
git merge <branchname>

 

  • 3. git conflict 
    충돌 해결하기!
    merge 하는 과정에서 서로 다른 브랜치가 동일한 파일또는 내용을 수정한 것을 발견하면,
    merge conflict 로 알려줍니다! 
    간단하게 해결 하는 방법은 해당 파일을 비교하고 직접 수정 후 add, commit 순서대로 처리하는 것 입니다


"=========" 기준

   위에 표시 된 내용이 main 브랜치에서 한 작업

   아래 표시 된 내용은 merge 할 브랜치에서 한 작업

 


 

 최종 정리 

  1. issue : 문제해결을 위한 작업 단위
  2. branch : 나뭇가지, 기능과 목적에 맞게 나눠 작업하는 작업 분리영역
  3. merge : 작업이 종료 된 브랜치와 브랜치를 합치는 것