[Git] GitHub으로 협업하기

Mincho·2023년 2월 19일
0

[Git]

목록 보기
1/2

🔴 프로젝트 수행을 위한 Repository생성

설명 간단하게 하기 위해서 팀장은 👨, 팀원은 👩으로 표현하여 설명에 들어가겠다!

👨 팀 프로젝트를 위한 레포지토리를 하나 만들어야 한다. 이 레포지토리는 팀장 한명만 만들어 놓으면 된다. 팀원들이 fork를 이용하여 각자 개인 저장소에 팀장의 레포지토리를 clone하여 개인 저장소에서 push,pull하여 작업할 수 있기 때문이다. 위와 같이 레포지토리를 생성하여 진행중인 코드를 push한다.

👨 위의 탭에서 Settings 클릭 후 Collaborators에 들어간 후 app people을 통해 팀원의 github ID로 초대할 수 있다.

👩 팀원은 초대가 오면 오른쪽 맨위 상단에 알림 표시가 온 것을 확인할 수 있고 이 알람표시를 누르게 되면 팀장(chhw130)의 초대를 수락할 수 있다.

👩 위와 같이 Accept invitation을 클릭한다. 그리고 팀장의 repository에서 상단 메뉴에 Fork를 해주면 fork한 레포지토리를 만들어줄 수 있게 된다.

👩 그렇게 만들어주면 팀장의 레포지토리를 fork하여 내 레포지토리가 만들어진 것을 확인할 수 있다!!!🤗🤗



🟠 fork한 레포지토리 clone하기

👩 git init을 통해 초기화 해준뒤에 본인 레포지토리에 연동해준다.

git remote add [원격저장소] [본인레포지토리 주소]

그리고 git remote -v를 통해 원격저장소와 연동이 됬는지 확인해 본다. 그리고 본인 레포지토리 주소를 통해 Clone해오면,,,

다음과 같이 팀장의 코드를 가져올 수 있게 된다!!!!🤘



🟡 Pull request

👩 팀원이 다음과 같이 코드를 수정하여 팀장의 main branch에 추가하고자 한다.

git add .  //변경 사항 더해주기
git commit -m "커밋 내용"  //변경 사항에 대한 커밋
git push [원격저장소] [branch명] //변경 사항 푸쉬해주기

팀원은 위의 과정을 통해 팀원 본인의 레포지토리에 변경내용을 push해준다.

push 해주면 branch에 대한 pull request가 나오고 pull request를 누르면 위와 같이 팀장에게 요청을 할 수 있다.

👨 그러면 팀장은 Pull reqeust에서 팀원이 커밋한 내용과 함께 Pull request를 받는다. 그리고 수락을 하게되면 그대로 팀장의 main에 merge가 되는 것이다.

👨 팀장의 레포지토리에서 Merged를 확인할 수 있다!!!



🟢 UpStream에 대해서

팀 단위 협업을 본인이 추가한 기능외에 다른 팀원이 팀장과 merge한 코드를 따로 pull 받아야하는 경우도 있다.
우리는 저장소가 우리의 레포지토리로 remote 되어있는 것을 remote -v를 통해 확인할 수 있었다. 그런데 팀장의 코드를 받기 위해서는 본인의 레포지토리가 아닌 팀장의 레포지토리 주소로 remote하여 pull을 받아야 한다.

👩 위의 번거로움을 해결하기 위해 upstream remote를 추가해준다. upstream은 팀장의 레포지토리와 팀원의 레포지토리를 연결하는 중간다리 저장소라고 생각하면 되겠다.

git remote add upstream [팀장의 레포지토리 주소]

이와 같이 입력하여 remote현황을 보게 되면 다음과 같이 upstream저장소가 추가 된것을 확인할 수 있다.

👩 git pull upstream [팀장의 브랜치]를 입력하면 팀장의 원하는 브랜치에서 코드를 가져올 수 있다!!!!



🔵 추가적으로 알면 좋은것

협업과정에서 한 개의 브랜치를 이용하여 개발하는 것보다 기능 구현을 할 때마다 브랜치를 새로 만들어 push해주면 형상관리에 도움이된다. 원본 코드를 손상시키지 않으며 개발 이력을 별도로 남길 수 있기 때문이다.


git branch 브랜치명
새로운 브랜치 생성하기

git switch 브랜치명
브랜치 바꿔주기


또한 팀원이 Pull Request를 보내주기 전에 코드 간에 충돌이 일어날 수 있기 때문에 변경한 이력을 확인할 필요가 있다. 그래서 Pull Request를 보내기전에 fetch를 이용하여 변경 이력을 꼭 확인해야 한다.

git fetch stream(본인이 설정한 원본 원격 저장소 별칭)
변경이력 확인하기

충돌이 있는 경우 git fetch를 이용하여 이를 수정 후 pull을 실행함
충돌이 없는 경우 기존 저장소에 pull을 실행 한다.

👉 후기

개인 작업을 할 때만 깃을 사용하여 push, pull정도만 진행을 하였고, 팀 프로젝트를 위해 협업을 위해 사용하는데 어려움이 있어 따로 공부할 필요성을 느껴 이렇게 정리하게 되었다. 아직 깃에 대해 완벽하고 깊게 알지는 못하지만 어떻게 프로젝트를 관리해야하는 지에 대한 기본지식을 배울 수 있는 좋은 기회였다.

👍올바른 피드백은 언제든지 환영입니다~!

profile
사진찍는 개발자.

0개의 댓글