Git 협업

Develop My Life·2020년 8월 13일
0

Git

목록 보기
5/6
post-thumbnail

협업 도식화

협업 도식화

협업 설정

OpenSource에서는 Pull은 아무나 할 수 있지만 Push는 아무나 할 수 없다.
Push를 하기 위해서는 승인이 필요하다.
1. github의 Repository에서 settings 메뉴에 들어간다.
2. 탭 중 collaborators & teams 탭에 들어간다.
3. 내용 중 collaborators에서 github id를 입력하여 협업자를 초대한다.
4. 이메일로 협업 요청을 받은 협업자가 초대를 수락하고 협업이 시작된다.

pull 대신 fetch를 사용하는 방법

  1. git fetch를 입력하여 원격 저장소의 데이터를 받는다.
  2. git merge origin/master 또는 git merge FETCH_HEAD 를 입력하여 수동으로 merge 해준다.
    git pull == git fetch; git merge FETCH_HEAD

Patch

OpenSource에서는 아무나 Push 할 수 없다. 협업자로 등록하는 방식도 있지만 Patch를 이용하는 방법도 있다.

Patch 순서

  1. git format-patch 수정 직전 commit id : 수정한 내용을 .patch 파일로 저장
  2. .patch 파일을 보낸다.
  3. .patch 파일을 받고 파일에 넣는다.
  4. git am -3 -i *.patch : 3-way-merge 방식으로 1 patch마다 물으면서 모든 패치 파일을 commit 한다.
    - 1 patch 마다 물을 때 e 를 누르면 commit message를 수정할 수 있다.
    원본 제작자가 따로 commit 하는 것이기 때문에 commit id는 외부 조력자와 다르다.여기서 push의 개념과는 약간 다르다.

Patch 도식화

Patch 도식화

pull request

OpenSource 개발 방식에 사용되는 기능으로 git hosting 업체에서 기능을 제공한다.

Fork

다른 사람의 계정으로 Repository가 복제된다.

compare

복제된 Repository와 원본 Repository를 비교한다.

pull request 과정

  1. Fork 기능을 통해 다른 사람에게 Repository를 복제한다.
  2. 다른 사람이 수정하여 복제된 Repository에 commit 한다.
  3. create pull request를 통해 원본 제작자에게 메세지를 보낸다.
  4. 원본 제작자가 복제된 Repository와 원본 Repository를 비교한다.
  5. 원본 제작자가 충돌이 없다면 Merge pull request한다.
  6. commit message를 작성하면 Merge가 확인된다.

pull request 도식화

pull request 도식화

git 명령어

  • git push -u origin master : 맨 처음 push하기 전에 설정해줘야하는 것으로 지역저장소 master와 origin의 master를 연결해준다. -u == --set -upstream
  • git fetch : Remote Repository의 데이터를 pull과는 다르게 origin/master는 최근 commit을 가리키고 master는 이전의 commit을 가리키는 상태로 가져온다.
  • git merge origin/master : 현재 master에서 origin/master를 병합함으로써 pull과 상태가 같게 된다.
  • git merge FETCH_HEAD : FETCH_HEAD 파일에 있는 commit을 병합하는 것으로 git merge origin/master와 같은 기능이다.
  • git pull == git fetch; git merge origin/master == git fetch; git merge FETCH_HEAD
  • git formt-patch 작업 직전 commit id : 작업 직전 commit id 부터 작업 내용을 .patch 파일로 만든다.
  • git am -3 -i *.patch : 3-way-merge 방식으로 1 patch당 물어서 모든 patch 파일을 commit한다. (e를 누르면 commit message를 수정할 수 있으며 commit id는 작업자의 commit id와 다르다.)

참고사항

  • code review의 방법으노 Gerrit라는 프로그램이 있고 이것은 안드로이드를 만들기 위해 만든 툴로 commit을 하면 바로 적용되는 것이 아니라 투표를 통해 더 나은 commit으로 적용되게 한다. 다수의 제작자가 있을 때 좋은 기능이다.
  • github의 issue tracker를 통해 효율적인 업무 분담이 가능하다.
  • github의 insight 기능을 사용하여 업무의 활발함을 알 수 있다.

0개의 댓글