반응형

(github)깃허브 - 깃허브를 이용한 협업방법

 

이전 포스팅에서는 깃허브를 가입하고 원격저장소를 이용하는 방법에 대해서 설명드렸습니다.

이번 포스팅에서는 이전포스팅에서 만든 깃허브 자료를 여러 컴퓨터에 복제하고 함께 사용 및 동기화하여, 협업에 사용하는 방법을 설명드리겠습니다.

 

다른 컴퓨터에서 원격 저장소 복제하기 (git clone)

먼저 두개의 폴더를 만들겠습니다. 깃은 폴더별로 만들어지기 때문에 두개의 폴더를 각각 집PC, 사무실PC로 인식하고 보셔도 됩니다.

이제 두 폴더에서 git clone 깃허브주소 명령어를 실행하여 깃을 복제하겠습니다.

주소는 깃허브의 Code 버튼을 누르면 나옵니다.

 

git_home과 git_office 폴더를 열어보면 폴더안에 test-1이라는 폴더가 생깁니다.

이제 두 폴더에 파일, 깃로그, 원격저장소도 복제 된 것을 확인합니다.

 

 

집에서 추가 커밋하고 회사에서 내려받기(동기화)

이제 git_home\test-1 폴더에서 home.txt 파일을 만들고 1열에 "home commit AAA"를 입력 저장하겠습니다.

git add home.txt 명령으로 스테이징을 하고, git commit -m "home commit" 명령으로 커밋을 추가한 후 git push 명령으로 깃허브에 올리겠습니다.

 

깃허브 홈페이지를 새로고침 해서 새로운 커밋이 올라온 것을 확인합니다.

 

이제 git_office\test-1 폴더에서 내려받기를 통해 동기화를 해보겠습니다.

현재 git_office\test-1 폴더에는 home.txt 파일도 없고, 추가된 home commit도 없는 상태입니다.

 

이제 git pull 명령을 입력합니다.

폴더에 커밋 로그가 추가되고, home.txt 파일도 생긴 것을 확인합니다.(동기화 완료)

 

원격저장소 변경사항 확인 후 병합하기(git fetch)

만약 다수가 팀작업을 할때 타인이 수정한 원격저장소 최종 커밋을 내려받기(pull)을 하면 나의 PC 폴더가 그대로 동기화 되버립니다.

어떤 변화가 있는지 확인 후 동기화를 하고 싶을 때 사용할 수 있는 방법이 git fetch 명령입니다.

git fetch는 커밋 정보를 FETCH_HEAD라는 브랜치로 가져오지만 merge는 하지 않습니다.

 

먼저 git_office\test-1 폴더에 office.txt 파일을 만들고 1열에 "office commit BBB"를 입력 및 저장합니다.

그리고 git add office.txt 명령으로 스테이징, git commit -m "office commit" 명령으로 커밋, git push 명령으로 깃허브에 업로드합니다.

 

이제 git_home\test-1 폴더에서 git fetch 명령을 입력합니다.

 

그리고 git log --oneline --branches --graph 명령어로 확인 해보면 추카된 커밋과 브랜치는 보이지 않습니다.

폴더를 확인해 봐도 office.txt 파일은 보이지 않습니다.

 

하지만 git status 명령어로 상태를 확인하면 현재브랜치가 origin/master에 비해 1개의 커밋이 뒤쳐저 있다고 나옵니다. 그리고 git pull 명령으로 업데이트 하라고 알려줍니다.

 

git checkout FETCH_HEAD 명령으로 FETCH_HEAD 브랜치로 이동합니다.

git log --oneline 명령으로 office 커밋이 동기화된 상태를 확인합니다. 

git_office\test-1 폴더를 보면 office 파일도 존재합니다.

 

fetch한 내용의 확인이 끝나면 브랜치를 합쳐야 합니다.

첫번째 방법은 git pull 명령어로 내려받을 수도 있습니다. (위에서 이미 설명드렸음)

두번째 방법은 master 브랜치에서 merge 명령으로 브랜치를 합치는 방법입니다. 이 방법으로 합쳐보겠습니다.

 

git checkout master 명령으로 마스터 브랜치로 이동 후, git merge FETCH_HEAD 명령으로 브랜치를 합칩니다.

 

 

내PC(지역저장소) 브랜치를 깃허브(원격저장소)에 push 하고, 깃허브에서 병합(merge) 하기

git_home\test-1 폴더에서 sub 브랜치를 만들고 원격저장소로 push 하겠습니다.

(항상 작업 전에 동기화를 해주는게 좋습니다. git pull 명령어를 입력합니다.)

 

git checkout -b sub 명령어로 sub 브랜치를 만듦과 동시에 checkout으로 브랜치를 이동합니다. (-b 옵션은 뒤에 나오는 브랜치를 만들면서 이동하는 옵션입니다.)

 

git_home\test-1 폴더에 sub.txt 파일을 생성하고 1열에 "sub commit AAA" 입력 및 저장합니다.

git add sub.txt 명령으로 스테이징, git commit -m "sub commit" 명령으로 커밋을 합니다.

 

이제 원격저장소로 push를 해야합니다. 지역저장소 sub 브랜치에서 원격저장소 sub 브랜치로 push 하겠습니다.

git push origin sub 명령을 입력합니다.

 

깃허브 홈페이지에서 새로고침을 해보면 브랜치가 2개로 확인됩니다.

하지만 마스터 브랜치에서는 sub.txt 파일이 보이지 않습니다.

 

마스터 를 클릭하고 sub 브랜치로 스위치를 하면 sub.txt 파일이 나오는 것을 확인 할 수 있습니다.

 

이제 깃허브에서 풀리퀘스트(pull request)를 통해 병합을 진행하겠습니다. 2 branches를 클릭합니다.

 

Your branches의 New pull request를 클릭합니다.

 

남길 코멘트를 적고 Create pull request를 클릭합니다. 그리고 Pull requests 내용을 확인 합니다.

 

내용에 문제가 없다면 Merge pull request를 클릭하고 Confirm merge도 클릭합니다.

 

< > Code를 클릭하면 master 브랜치에도 sub.txt 파일이 보일 것입니다. sub에서 Merge pull request 됐다는 내용도 보입니다.

 

다시 2branches를 클릭해봅니다.

 

브랜치가 병합된 상태라고 알려줍니다. 누가 병합을 했는지도 알려줍니다.

 

[github]깃허브 전체보기

 

'(github)깃허브' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형