github 협업하기

kangdari·2020년 2월 7일
4

저장소의 종류

  • 중앙 원격 저장소
    여러 명이 같이 프로젝트를 관리하는 데 사용하는 그룹 계정의 원격 저장소
    organization의 사용자와 저장소는 팀으로 관리되고 저장소의 권한 설정도 팀으로 관리한다.

캡처.PNG

  • 원격 저장소 (remote repository)
    파일이 GitHub 전용 서버에서 관리되는 원격 저장소

  • 로컬 저장소 (local repository)
    내 PC에 파일이 저장되는 개인 전용 저장소, 지역 저장소


clone

clone은 특정 repository를 내 locla 저장소에 복사하여 새로운 저장소를 만든다

git clone 명령어로 중앙 원격 저장소를 복제하여 로컬 저장소를 만들 수 있습니다.

$ git clone [remote repository URL]

원격 저장소의 특정 branch clone

$ git clone -b [ 브랜치 이름] [ 원격 저장소 URL ]

git clone 명령은 아래의 명령들을 포함하는 작업이다.

$ git init
$ git remote add origin [remote repository URL]
$ git fetch origin master

  • fetch : 원격 저장소의 데이터를 로컬에 가져옴.
  • pull : 원격 저장소의 내용을 가져와 자동으로 merge 작업을 실행
  • pull = fetch + merge

$ git remote -v
명령어를 통해 remote 목록을 확인할 수 있습니다.


branch를 생성하고 해당 branch로 이동

$ git checkout -b [branch name]

$ git branch [branch name]
$ git checkout [branch name]

$ git branch
명령어로 branch 목록 확인

git clone 이후 branch를 만들어 해당 branch에서 작업을 진행하고
중앙 원격 저장소(remote repository)에 푸시해줍니다.

$ git add * // 변경된 모든 파일 스테이징 영역에 추가
$ git add [file-name] // 파일을 선택하여 스테이징 영역에 추가
& git commit -m "commit message" 

커밋을 완료했다면 작업한 내용을 포함한 브랜치를 중앙 원격 저장소에 푸시

$ git push -u origin [branch-name]

작업한 branch에서 Pull requests를 해준다.
image.png
Pull request는 기능 개발이 끝나고 master에 바로 병합(merge)하는 것이 아니라 브랜치를 중앙 원격 저장소에 올리고 master에 병합(merge)요청을 하는 것.

image.png

Compare & pull reqeust을 선택하여 메세지를 작성하고 PR 작성

image.png

코드 리뷰 이후 Merge 여부를 결정합니다.

image.png

Merge 이후 동기화 및 branch 삭제

원격 저장소에 merge가 완료되면 로컬 코드와 원본 저장소의 코드를 동기화 합니다.

master branch로 이동하여 해당 명령어를 실행하면 코드가 동기화된다.

$ git pull master
	or
$ git pull origin master

$ git branch -d [branch-name] // branch 삭제

추가로 작성할 작업이 있다면 git pull master 명령어를 통해서 원본 저장소와 동기화를 진행하고
(최신 상태에서) branch를 생성하여 작업을 진행합니다.

원격 저장소의 다른 branch 가져오기

협업을 하고 있는 다른 팀원의 branch를 가져와 작업하거나, 개인이 2대의 pc를 사용하고 Git을 통해 파일을 관리하는 경우 원격 저장소에 있는데 branch를 가져와야한다.

원격 저장소 branch 확인

git branch -r : 원격 저장소의 branch 리스트 확인
git branch -a : 로컬, 원격 저장소의 branch 리스트 확인

git push origin --delete [branch_name] : 원격 브랜치 삭제

원격 저장소 branch 가져오기

image.png

원격 저장소의 branch 리스트를 확인하고 아래 명령어를 사용합니다.
git checkout -t [원격 저장소 branch 이름]
로컬에 branch를 생성하고 해당 branch로 checkout

git checkout -b [생성할 branch 이름] [원격 저장소 branch 이름]
원격 저장소 branch를 가져오면서 이름을 변경

만약 branch 이름을 변경하여 가져오고 싶다면 $ git checkout -b [생성할 branch 이름][원격 저장소의 branch 이름] 처럼 사용하면 된다.


참고 사이트
https://wayhome25.github.io/git/2017/07/08/git-first-pull-request-story/

https://cjh5414.github.io/get-git-remote-branch/

0개의 댓글