본문 바로가기

개발/Git

[5. Git&Github] Github로 협업하기(팀프로젝트)

안녕하세요!

 

이번 포스팅에서는 팀프로젝트를 할 때, 또는 실무를 할 때

어떻게 팀원과 Github를 통해 협업을 할 수 있는지 알아보겠습니다.

 

[내 프로젝트 공유하기]

 

이전 포스팅에서 한것과 동일하게, 내가 작업한 프로젝트를 commit -> push과정을 통해 Github에 올리면 됩니다.

자세한 내용은 아래의 포스팅을 참고해주세요.

 

[4-1. Git&Github] Github에 프로젝트 업로드(with.VSCode)

안녕하세요! 지난 포스팅에서는 intellij를 통해서 Github에 내 프로젝트를 올리는 방법에 대해서 알아보았는데요! 제가 적은 글이지만, 보기 조금 헷갈리기도 하고,,다시 한번 연습을 해보고 싶어

crescent0-0.tistory.com

 

[팀원 프로젝트 가져오기]

1. Github접속

- 해당 팀원의 프로젝트가 올라간 Github에 접속합니다.

- 아래 사진과 같이, 우측의 초록색 버튼을 눌러 해당 Github의 주소를 복사합니다.

- 복사 시, 해당 주소를 붙여 넣을 곳에 맞춰 HTTPS, SSH, Github CLI중 선택하여 복사해주세요.

github 주소 복사

 

2. Git Clone진행

- 터미널을 열고 아래의 명령어를 통해, 해당 프로젝트를 내가 작업하는 컴퓨터로 가져옵니다.

- 저는 이전 포스팅에서 올렸던 프로젝트를 가져와보겠습니다.

> git clone "복사한 github 주소" "폴더이름"

git clone 실행 화면

- 위와 같이 해당 github에 올라간 프로젝트를 "childGit"폴더로 가져오는 것을 볼 수 있으며,

  이제 가져온 소스파일에 맡은 작업을 진행하면 됩니다! 

 

[팀원과 프로젝트 공유]

위에서 받은 프로젝트에서, 제목부분을 내가 작업을 한 후에, 이를 다시 해당 github로 올려서 모든 팀원들과

공유하고, 작업내용을 맞춰보도록 하겠습니다.

받은 프로젝트에 추가 작업한 화면

 

1. 내 brunch에 작업내용 올리기

  - 먼저, 해당 github에 내 작업내용을 push하는 방법은 이전 포스팅에서 배운것과 동일합니다.

  - 하지만, 여기서 주의할 점은 master가 아닌, 나의 brunch에 작업내용을 올리는 것입니다.

  - master는 최종 프로젝트의 결과가 올라가는 곳이기 때문에, 내가 작업한 것을 바로 올리는 것은 너무 위험합니다.

    내 작업 내용이 기존의 master에 올라간 내용과 잘 융합되면 다행이지만, 에러가 발생할 경우에는 복구하기가 매우 힘들기 때문입니다.  

 

  - 그래서, 일단 나의 brunch에 올려 작업 내용을 공유하고

    해당 프로젝트의 팀장이 공유된 코드를 보고 master에 올릴지 말지를 결정합니다.

brunch에 작업 내용 push

 

  - 위의 화면과 같이 master에서 child 브런치로 이동한 후, push를 진행합니다

    (저는 이전에 childGit이라는 브런치에서 작업을 진행해서, master라고 표기가 안되어있지만, 명령어는 동일합니다.)

  * 명령어 정리

> git add .
> git status
> git checkout -b "brunch 이름"
> git commit -m "commit 메세지"
> git push origin "brunch 이름"

    > git checkout -b "brunch이름" : 입력한 brunch로 전환하는 명령어

 

- 이렇게 진행하면, 아래의 화면과 같이 나오게 됩니다. 여기서 "Compare & pull request"를 클릭해주세요.

brunch의 pull request요청 화면

- 아래의 화면처럼, master를 담당하는 팀장님에게 보낼 commit 메시지를 추가로 입력하고, "Create pull request"를 누르면,

  나의 작업에 대한 push 작업이 끝나게 됩니다.

push 요청 완료

 

2. master에 brunch내용 merge하기

  - 팀장은 자신에게 온 pull request를 통해, brunch가 보낸 push를 확인하고 merge할 수 있습니다.

  - 먼저, "Pull requests"를 눌러, brunch의 push내용을 확인해보겠습니다.

    아래의 화면처럼 나오면, 해당 요청을 클릭해주세요(저의 경우에는 Child 입니다.)

pull requests 화면

  - 클릭을 하면 아래 사진과 같이, commit 내용을 확인할 수 있습니다.

     commit 내용을 확인을 한 후에, 최종적으로 master에 merge를 할지 결정해보겠습니다.

  - commit 내용은 해당 commit 메세지를 클릭해서 확인할 수 있습니다

commit 내용 확인

  - 해당 commit내용을 누르면, 아래와 같이 기존의 master와 해당 brunch가 어떤 점이 다른지 파악할 수 있고,

    이를 통해, 문제가 없다고 판단이 된다면 merge를 진행하면 됩니다.

master와 brunch 비교 화면

  - merge를 하려면, 이전의 화면 하단에 있는 "Merge pull request"를 누르면 됩니다.

    성공적으로 에러없이 merge가 된다면 아래와 같이 보라색 아이콘이 뜨게 됩니다!

    또한, master에 brunch에서 commit시 입력한 메세지가 나오게 됩니다!

"Merge pull request"버튼으로 merge 진행
merge 성공 화면
merge 성공 화면

 

3. 작업환경에 변경된 내용 가져오기.​

  - 그럼, 이전 master 코드 내용에 작업을 하던 팀장은, 어떻게 추가된 소스코드를 가져와서 작업을 진행할 수 있는지 알아보겠습니다.

  - 아래에서 볼 수 있듯, 동시에 다른 팀원과 작업을 진행했기에, 현재의 master code와 나의 code는 다릅니다

    이를 주기적으로 맞춰주지 않는다면, 이후에 code를 합치는 것을 더욱 어려워지고 에러가 날 확률이 높아지게 됩니다.

    그래서, 주기적으로 작업내용을 맞춰주어야 합니다. 이를 어떻게 하는지 알아보겠습니다!

(좌) 팀원과 합쳐진 현재의 master code (우) 이전 master code + 나의 작업

  - 변경내용을 가져오는 과정 또한, 간단합니다.

    내가 지금까지 한 작업을 저장(commit)한 후, master code를 가져오고(pull),

    그것과 나의 작업을 합쳐서 master에 올리는(push)순서로  진행하면 됩니다.

 

  - pull까지 진행하고 나면, 작업하던 소스코드는 아래의 화면처럼, master code와 합쳐지게 됩니다.

기존 master + 팀원 작업내용 + 팀장 작업내용

  - 이후, push를 진행하게 되면, github의 master에는 원래의 작업 내용에 팀장과 팀원이 작업한 내용이 모두 에러없이 merge가 되어

    올라가게 됩니다.

최종 github에 저장된 master code

* 명령어 정리

> git add .
> git commit -m "commit 메세지"
> git pull origin master
> git push origin master

 

이렇게, 다른 팀원들과 협업을 어떻게 하는지를 배워보았습니다.

정리하자면, 내 작업은 commit으로 저장하고, pull로 master에 올라가있는 내용을 가져와

내 작업과 합치고, push로 내 작업내용을 팀원들에게 공유하는 것입니다.

이 때, push는 팀장이라면 master에, 팀원이라면 다른 brunch에 하면 좋습니다.

 

저도 git을 처음 써보면서 포스팅을 하다보니, 깔끔하게 글을 적지는 못한 것 같지만

조금이나마 저와같은 git 초보자에게 도움이 되길 바랍니다.

 

다음 포스팅에서는 git에서 쓰이는 용어들을 다시 한 번 정리해보면서,

git, github에 대한 포스팅을 마치겠습니다.

 

감사합니다🙌


참고링크 : https://youtu.be/cwC8t9dno2s