[10] Spring - 뉴스피드 프로젝트 GitHub 협업방식 및 코드충돌해결

2024. 10. 27. 13:36Spring/뉴스피드 프로젝트

728x90

※ 지난 프로젝트 글 참고

https://kuk1938.tistory.com/184

 

[9] Spring - 조별프로젝트 뉴스피드 프로젝트(JPA)

📁️ 프로젝트 설명※ 깃허브 링크 : https://github.com/ii-news-feed/ii-news-feed-backend GitHub - ii-news-feed/ii-news-feed-backendContribute to ii-news-feed/ii-news-feed-backend development by creating an account on GitHub.github.com간단

kuk1938.tistory.com

 

📁️ 프로젝트 설명

※ 깃허브 링크 : https://github.com/ii-news-feed/ii-news-feed-backend

 

GitHub - ii-news-feed/ii-news-feed-backend

Contribute to ii-news-feed/ii-news-feed-backend development by creating an account on GitHub.

github.com

 

 

간단한 SNS시스템 개발)

- 로그인

- 회원가입

- 프로필관리

- 뉴스피드 게시글관리

- 친구관리

 

프로젝트 기간 및 인원)

- 총 5일(실작업 3일)

- 인원 4명

 

사용기술)

- JAVA, Spring, JPA

 

깃 merge 방식)

- 본인 작업에 대해 issue생성

- issue번호에 따른 branch생성

- 각자 branch에서 작업 마무리 후 pr생성

- pr을 다함께 확인하면서 코드 충돌 해결 및 리뷰

- 리뷰 마무리 후 main으로 최종 merge

 

제목 내용
간단한 sns 시스템 개발 회원가입, 로그인, 프로필관리, 뉴스피드 게시글관리, 친구관리
프로젝트 기간 및 인원 총 5일(실작업 3일), 인원 4명
사용 기술 JAVA, Spring, JPA
github merge 방식 - 본인 작업에 대해 issue 생성
- issue번호에 따른 branch생성
- 각자 branch에서 작업 마무리 후 pr생성
- pr을 다함께 확인하면서 코드 충돌 해결 및 리뷰
- 리뷰 마무리 후 main으로 최종 merge



📚 코드충돌 해결 및 협업

※ 위에서 설명한 협업방식은 담당튜터님께서 알려주신 방법이었으며, 실제 활용함에 있어서 정말 편하고 좋았다.

※ 코드충돌 해결방법도 담당튜터님이 특강으로 알려주신 방법이었고, 이번 프로젝트에서 팀원들과 다같이 잘 활용했다.

 

[협업방식]

1) issue 생성

- 먼저 조원들과 각자 작업할 파트를 분장하고, 각 파트에 대해서 이슈를 생성한다.

작업했던 이슈 일부 캡쳐본
이슈 상세 캡쳐본

 

 

2) 본인의 issue번호와 동일하게 branch명 맞춰서 생성.

- 위 방식으로 branch생성한 후에 각 branch에서 issue에 해당되는 작업들만 진행한다.

최초 작업에 대한 issue
issue번호에 맞춰 생성되어있는 branch

 

 

3) 본인의 branch에서 작업완료 후 pr생성

- 본인의 branch에서 commit,push후에 마지막에 pr생성

pr목록
pr 상세본

- 현재는 작업완료로 merge가 완료되어 버튼이 비활성화되어 있는 것을 볼 수 있다.

 

4) pr에서 발생한 코드 충돌 해결 후 main브랜치에 merge

※ 코드충돌 해결과정은 아래에서 설명할 예정

※ 이번 프로젝트에서 pr들을 main브랜치에 바로 merge했었는데 다음 프로젝트부턴 develop브랜치를 생성하여 main에 merge하기전에 먼저 develop에 merge하는 과정을 추가하여 현재 협업방식에서 좀 더 안정적으로 진행하면 좋을것 같다.

 

 

 

[코드충돌 해결 방법]

※ 인텔리제이에서 pr 생성하는 방법

- 상단에서 Git 메뉴클릭 - GitHub선택 - Create Pull Request클릭

 

 

1) main 브랜치를 pull한다. (그 사이에 추가된 작업이 있을수도 있기 때문)

git pull origin main

 

 

2) 내가 작업한 브랜치로 checkout 한다.(브랜치 이동)

git checkout 내브랜치이름

 

 

3) main 브랜치를 rebase한다.

git rebase main

 

 

※ git rebase 설명 참고

https://seosh817.tistory.com/240

 

[Git] Git Rebase란? (feat. git-flow 히스토리를 더 이쁘게 만들기)

안녕하세요. 이번에는 Git rebase에 대해 정리하겠습니다! Git rebase란? Git rebase는 두 개의 공통 Base를 가진 Branch에서 한 Branch의 Base를 다른 Branch의 최신 커밋으로 branch의 base를 옮기는 작업입니다. 용

seosh817.tistory.com

 

 

4) rebase 한 후 코드충돌 확인 및 해결

 

- rebase 후 commit 목록에서 Resolve클릭

- 아래 충돌이 발생한 파일에 대하여 Merge 버튼 클릭

 

- 중간이 현재 파일이고 좌측은 내가 작업한 브랜치, 우측은 main 브랜치이다.

- 코드들을 확인해서 중간 현재파일에 적용할 코드들을 넣거나 빼줄 수 있다.

- 완료 후에 아래에 Apply 버튼을 클릭하여 적용

 

5) force push 실행

git push origin 브랜치명 --force

 과거의 commit을 추가해줌

 

 

※ force push 인텔리제이에서 실행하는 방법

- 작업한 브랜치 선택 후 Push 클릭

 

- 아래 PUSH옆에 화살표 클릭하면 Force Push 버튼이 보이고 클릭하면 된다.

 

 

6) GitHub에서 pr확인

- 총돌이 잘 해결되고 Merge 버튼이 활성화 된 것을 확인할 수 있다.

 

 

 

728x90