heyday2024 님의 블로그
[Github 특강] Github 이용해서 협업 과정 + 팁(dev) 본문
브랜치(== 복사본):
보통 기능 추가 코드 짤 때 브랜치 만들어 사용
- git branch 브랜치이름
- 브랜치 이동 명령어
- git switch 브랜치이름
예전에는 브랜치 이동할 때 checkout 썼음...
- git checkout 브랜치 이름
여기서 login 브랜치가 최신인데 main으로 합치는 이유:
협업 시 여러 사람들이 코드를 한곳에 합쳐야되기 떄문에....
<합칠 때>
최종 브랜치로 이동을 하고
- git merge 브랜치명 (위 예시에서는 git merge login)
근데 보통 github 에서 합치는 게 더욱 선호됨 : 터미널에서 직접 커밋하고 병합하는 것보다 협업과 코드 품질 관리를 체계적으로 할 수 있기 때문
- 코드 리뷰: PR을 통해 팀원들이 코드 변경 사항을 검토하고 피드백을 줄 수 있습니다. 터미널에서는 이런 코드 리뷰 과정이 없으므로 코드 품질을 보장하기 어렵습니다.
- 협업 관리: PR을 통해 누구의 코드가 어떤 변경 사항을 포함하고 있는지 명확히 관리할 수 있습니다. GitHub에서는 PR에 대한 논의, 리뷰, 변경 기록이 남아 있어 추적이 용이합니다.
- 자동화 도구와 통합: PR을 사용하는 경우 GitHub Actions와 같은 CI/CD 도구를 자동으로 실행할 수 있습니다. 이로 인해 코드를 병합하기 전에 테스트, 빌드 검증이 자동으로 수행됩니다.
- 브랜치 보호: GitHub에서 PR을 사용하면, 특정 조건을 충족해야만 merge가 가능한 브랜치 보호 정책을 설정할 수 있습니다. 예를 들어, 코드 리뷰가 완료된 후에만 병합을 허용하거나, 모든 테스트가 통과해야만 병합할 수 있습니다.
- 히스토리 관리: PR은 코드 변경 히스토리를 명확하게 남길 수 있어, 나중에 문제가 발생했을 때 특정 변경 사항을 쉽게 추적할 수 있습니다.
pull request란? 코드 합치는 것을 요청하는 거
- github에 올리기 하고나서...
- git push origin 브랜치명
<브랜치를 로컬 환경으로 가져오고 싶을때>
- git pull origin 브랜치명
Main 브랜치 === 배포용
그래서 브랜치에서 수정한 혹은 생성한 코드들을 바로 main에 push 하면 문제가 생김!!
문제점:
1) 완벽하게 기능 개발해야 merge가 가능
헤결법: 개발용 브렌치를 하나 더 만들기
문제:
2) 충돌이나 오류가 있는데도 main에 push 했을 경우 이를 모르고 다른 팀원들이 그 코드를 가져와서 뒷 작업을 하면, 나중에 오류 찾고 해결하는데 시간이 많이 소비될 수 있음.
해결: dev 브랜치 만들어서 그 dev에 기능 하나씩 추가될 때마다 코드 merge하고, 충돌이나 다른 오류들 수정하기
<github 협업 과정 총정리>
--> 여기까지 팀장 , 팀원이 기능 코드 추가 전 할 일 끝
- 팀원들은 git init 할 필요없이 clone으로 가져와서 브랜치 만들고 수정하면 됨.
- 수정 후 push 하면 git pull request가 github에 뜸 --> 그럼 이제 github에서 merge하면됨
- 이런 경우 로컬환경에서 충돌 문제가 일어난 파일을 pull을 해서 충돌을 해결한 후 push 하면 됨.
- 바꾸면 files changed에서 리뷰확인 가능..
위에서 말했듯이,
merge pull request 버튼은 충돌 문제에 의해 비활성화될 수도 있음. 이 경우, 내 로컬에서 충돌해결한 후 push 해야함.
참고로,
- origin dev는 깃허브에 있는 dev 를 가리키고, (팀원들과 내가 push한 코드 결과물이 있는 github 레포지토리에 있는 브랜치)
- vs코드 상에서 터미널에 있는 dev는 로컬 dev임.(결과물을 가져와서 내가 다시 수정 혹은 코드 추가하려는 브랜치 환경)
<그림으로 보는 git hub 협업>
github 으로 협업하는 과정을 다시 정리해서 좋았다. 특히, 튜터님들이 직접 회사에서 협업하면서 얻은 꿀팁인 dev 브랜치를 default로 두고 작업하는 과정을 자세히 알게 되어서 참 좋았다.
첫번째 팀과제 때 깃헙 관련 이슈(충돌)로 시간을 많이 소비했었는데, 다다음주 팀원들과 협업할 때는 배운 위의 지식들을 바탕으로 github을 잘 사용하고, 더욱 복잡한 프로젝트도 소화해내고 싶다.
'프론트엔드 부트캠프' 카테고리의 다른 글
[JS 기초 문법 3주차(3)] 실행 컨텍스트의 세번째 요소, ThisBindings (0) | 2024.10.20 |
---|---|
Web APIs , DOM, 로컬 스토리지, 이벤트 처리 방식 (0) | 2024.10.18 |
[JS 강의 2회차] 객체&배열 의 데이터 저장, 수정, 삭제, 복사 정리 (2) | 2024.10.17 |
[JS 기초 문법 3주차(2)] 실행 컨텍스트 (스코프, 변수, 객체, 호이스팅) (4) | 2024.10.17 |
[알고리즘 특강(4)] (1) | 2024.10.15 |