협업을 위한 Git 활용 2주차
issue 할당
issue : 누가 이 작업을 할 것인지 정하기
branch : 각자 맡은 것을 작업하기
merge : 각자 작업을 프로젝트에 합치기
- Assigness(담당자) : 이슈를 작업하거나 관련된 사람, 작업할 사람
- Labels : 이슈가 어떤건지 분류
issue와 연관된 commit 만들기
커밋 메세지에 #1(이슈번호) 붙여서 커밋!
자동으로 이슈와 관련된 commit이 있었다는 걸 알려줌!
📌 Branch란?
각자 작업을 할 수 있는 공간을 만들기 위해 나뭇가지가 뻗어나오듯
branch를 이용하면 기능에 맞게 나누어 작업할 수 있음.
협업을 할때는 내 작업만 열심히 commit하는 것이 아니라 다른 부분을 신경써줘야 한다.
두 사람이 같은 파일을 작업하면 충돌이 나서 더 이상 작업하기 힘들 수 있다.
그러므로 서로 작업한 commit 내역을 내 로컬 repo에도 틈틈히 반영해 줘야 한다.
main브랜치
ㄴ 김치국 브랜치
ㄴ 김치찜 브랜치
branch history를 보면서 기능별 브랜치를 만들어 작업했음을 알 수 있다.
branch 실습
📌 브랜치 생성
브랜치명 : 기능/이슈번호_기능이름
◎ : 지금 이 브랜치(작업공간)에 있다는 뜻
📌 branch checkout
📌 branch 삭제하기
브랜치를 삭제한다는 것은 그동안 브랜치에 했던 작업 내역 즉, commit이 모두 사라진다는 의미
브랜치를 삭제하면 기본 브랜치인 main 브랜치로 체크아웃(작업 브랜치 변경) 됩니다.
다른 브랜치로 체크아웃 해둔 상태에서 삭제!
강제삭제!
파일도 확인해 보면, 브랜치 commit한 내용은 모두 삭제!
main작업공간에서의 commit과 동일!
맘껏 실험해보고 싶을 때, 브랜치생성해서 삭제하는 과정 이용.
Merge(병합)
각자 작업한 것을 합치기 위해 사용
브랜치를 다른 브랜치에 합치는 것.
특정 브랜치의 commit 들을 다른 브랜치의 commit 내역에 모두 반영하는 것.
main브랜치
ㄴ dev
ㄴ 김치국 브랜치
ㄴ 김치찜 브랜치
실제 프로젝트에서는 작업 내역을 모두 합칠 기준이 되는 브랜치(개발용 브랜치, 배포용 브랜치)를 정해두고 작업합니다.
실습에서는 main 브랜치에 합쳐 볼 예정!
📌 github-flow
프로젝트마다 branch 관리하는 방법이 다름.
commit하고 작업하는 방법을 통틀어 flow(흐름)이라고 함.
웹개발의 경우 github-flow를 많이 사용합니다.
merge실습
- 합칠 기준이 되는 브랜치(main)으로 체크악웃
- [병합] 클릭!
- 병합할 브랜치(feature/2_jjigae)선택
- 옵션 체크!
commit까지 완료된 상태
이제 쓰일 일 없는 feature/2_jjigae 브랜치는 삭제해주면 된다.
📌 여러 브랜치를 만들어 작업하고 merge하는 실습
main에서 뻗어나가는 feature/jeon, feature/rice 브랜치 2개 생성
rice브랜치에 체크아웃 해둔 상태에서 [탐색기] 클릭
rice관련 문서 수정!
브랜치 두개 수정 사항 서로 영향 받고 있지 않음.
main에 체크아웃해둔 상태에서 차례로 merge
병합 완료!
Merge Conflict
merge할 때 발생하는 충돌!
<<<<<<< HEAD
{현재 브랜치의 다른 파일 내용}
=======
{충돌나는 브랜치명 또는 commit에서의 다른 파일 내용}
>>>>>>> 충돌나는 브랜치명 또는 commmit 아이디
충돌 나는 부분을 위와 같이 알려주면 이를 수정.
<<<<<<< HEAD , ======= , >>>>>>> 충돌나는 브랜치명 또는 commmit 아이디 를 지우면 됨.
수정한 뒤, commit해주면 됨.
📌 Merge Conflict 실습
같은 파일 수정으로 인한 conflict 발생 예정!
충돌 발생!!!
충돌된 파일을 선택 후, '충돌 해결' 밑의 메뉴 사용하여 해결가능
[해당 파일] 더블 클릭
사람이 보고 결정! 수동의 수정작업을 해야함.
병합충돌 해결후, 병합!
원격 repo
feature/jjim 브랜치에서 수정한 파일을 origin/feature/jjim저장소에다 push
'GIT' 카테고리의 다른 글
협업을 위한 Git 활용 3주차(2) (0) | 2022.12.02 |
---|---|
협업을 위한 Git 활용 3주차 (1) | 2022.12.01 |
협업을 위한 Git 활용 1주차 (0) | 2022.11.28 |