본문 바로가기
TIL/기타

2021.7.24 TIL : [GitHub] 협업을 위한 깃헙 사용 방법

by yeon_zoo 2021. 7. 24.

[GitHub] 간단한 깃헙 사용 방법을 먼저 참고하기.

처음으로 깃헙에서 Pull Request(PR)도 해보고, 충돌이 발생할 때 수정도 해봤다. 깃헙이 왜 편리한 버전 관리툴이자 협업 툴인지 이해할 수 있었다. 

이 블로그에서 배울 것은 git에서 fork 떠오기, git clone, remote 설정, branch 만들기, merge 이후 branch 삭제까지이다. 먼저 전체적인 흐름은 다음과 같다. 기본적으로 VS Code에서 진행하는 것으로 보면 된다. 또한, 이 블로그는 내가 repository를 만들지 않고, 다른 사람의 레포지토리를 fork해 오는 과정을 기본으로 한다.


1. 팀장(편의상 팀장이라고 함. 아무나 해도 상관없다)이 자신의 깃헙에 repository를 하나 만든다. 

2. 해당 repository에 다른 팀원들을 collaborator로 invite한다. (깃헙에 등록한 이메일 주소 이용)

3. 팀원들은 invitation을 이메일로 확인하고 수락하여 레포지토리를 확인한다.

4. 해당 레포지토리에 파일을 올리면 레포지토리를 fork 할 수 있다. (fork 버튼은 우측 상단 내 프로필 사진 밑에 있다)

5. fork된 레포지토리 ('내아이디/레포지토리명'으로 구성된 것)에서 초록색 Code 버튼을 눌러 링크를 복사한다.

6. 깃헙에 올라간 다른 사람들의 코드를 다운받기 위해서 자신의 노트북(로컬)에서 폴더를 하나 생성하고 VS Code에서 해당 폴더를 연다. 

7. 터미널 창에 다음과 같이 입력한다. (git init은 초기화 과정이다)

$ git init
$ git clone [레포지토리 주소]

 여기까지 하면 깃헙에 올린 파일들과 동일하게 파일들을 다운 받을 수 있다. 


리모트 저장소 설정 및 리모트 저장소에 push 하기 

이후에는 다운받은 파일들을 자신이 필요한 대로 수정하고 추가할 파일들을 추가하면 된다.

깃헙에 add (스테이징하기), commit, push 해야 하는 것은 여기에서 읽어볼 수 있다. add와 commit은 수정하고 추가한 파일들을 로컬 레포지토리에 올리는 과정이니, 똑같이 해주면 된다. 다만 push할 때 remote 레포지토리를 여럿 저장할 수 있는데, 이게 매우 편리하다.

 

깃헙에서 내가 파일을 올리고 싶은 주소를 먼저 파악한다. 협업을 하게 되면, 처음에 팀장의 레포지토리에 바로 올리지 않고, 내가 fork 해 온 레포지토리에 올리는 게 좋다. 충돌이 많이 일어날 수도 있고, 내 코드가 잘못 된 것일 수도 있으니까! 나는 remote 저장소를 두 군데에 만들어줄 예정이다. 하나는 팀장의 레포지토리를, 다른 하나는 fork한 내 레포지토리이다.

 

다음 명령어를 사용하면 된다. 역시 레포지토리 주소는 초록색 코드 버튼을 눌러서 나오는 것을 복붙해주면 된다.

$ git remote add [별칭] [https://github.com으로 시작하는 레포지토리 주소]
$ git remote add origin [내 레포지토리 주소]
$ git remote add all [팀장 레포지토리 주소]

내가 만든 remote 저장소들은 다음 명령어로 확인할 수 있다.

$ git remote -v

 

이렇게 하고 나서 push 할 때는 내가 푸시하고 싶은 레포지토리와 브랜치에다가 해주면 된다.

$ git push [remote의 별칭] [branch 명]

만약 내 리포지토리에 push 하고 싶다면

$ git push origin master

이런 식이다. 보통은 내 레포지토리에 푸시를 하고 포크 떠온 레포지토리와 팀장의 레포지토리를 비교해서 PR을 하면 된다. 


branch 만들기

master 말고 다른 branch를 만들어서 푸시하고 나중에 PR할 수도 있다. (혹은 fork 하지 않고, 팀장의 레포지토리에서 branch를 만들어서 사용할 수도 있다) branch를 만드는 명령어는 다음과 같다.

$ git branch [만들고자 하는 branch명]

해당 repository의 branch 목록을 보고 싶다면 다음 명령어를 사용할 수 있다.

$ git branch

branch를 만들고 나서도 꼭 push를 해줘야 깃헙에 반영이 된다. 


PR(pull request)하는 법

만약 fork된 내 레포지토리에서 팀장의 레포지토리로 pull request하고 싶다면, 내 레포지토리로 들어간다(github.com에서). 그리고 나서 Pull request 탭에서 초록색으로 된 pull request 버튼을 누른다. 

⬆️여기서 저 초록색 버튼이다. 

그러면 이런 창이 뜨는데, 이 때 내가 올리려는 파일을 가지고 있는 쪽이 compare, 파일 업로드할 브랜치가 base에 오도록 선택해준다. 아마 fork한 레포지토리에서 pull request 버튼을 누르면 팀장의 레포지토리가 base repository로 뜰 것이니 base로 브랜치만 선택해주면 된다. 

 

만약 충돌이 없으면 'Able to merge'가 뜰 것이고, 충돌이 있으면 이후 해결해주면 된다. (코드 수정할 수 있는 폼이 뜬다) 이후 뜨는 텍스트 입력창에 입력하면 PR 메모를 저장할 수 있다. 다 되었다면 Create Pull Request 버튼이 뜬다. 이걸 클릭해주면 된다. 이후, Merge pull request를 통해서 merge 해줄 수 있고, Confirm merge를 눌러주면 merge 완료!

 

이후에 파일을 내려받고 싶으면 vs code 터미널에 다음과 같은 명령어를 쳐주면 된다.

$ git pull [remote별칭] [branch명]

보통은 팀장의 repository에서 pull 받는 경우가 많으니까 예를 들면 다음과 같이 하면 된다.

$ git pull all master

branch 삭제

이후 branch를 삭제 해주면 된다. branch는 각각의 기능을 만들기 위해서 필요한 것이기 때문에 계속해서 하나의 Branch를 쓰는 것이 아니라 기능별로 branch를 만들었다가 merge되고 나면 삭제하는 방식으로 사용하는 것이 좋다고 한다.  branch 삭제 명령어는 다음과 같다. 

$ git branch -d [브랜치명]

 

댓글