Git

[Git] 협업 연습

인생은단짠단짠 2022. 9. 17. 14:50

 

가장 중요한 부분입니다. 

이것만 할 줄 알면 git을 거의 다 할 줄 안다고 보면 됩니다...ㅎㅎ

 

git flow workflow 방식, fork and merge 방식을 이용 할 것 입니다.

 

협업은 팀장이 해야 할일, 팀원이 해야 할일로 나누어 볼 수 있습니다. 

 

먼저 팀장이 해야 할 일 부터 보겠습니다.

 

팀장이 해야 할일

  1. new organization을 생성합니다. (나오는거 다 skip해도 됩니다.)
  2. people 탭에서 팀원들을 invite합니다.
  3. 프로젝트 repo를 생성합니다.
  4. Issues (해야할일, 버그 ,제안들을 모두 list up하는 공간) 템플릿을 만들어 줍니다.
    1. setting → feaure→ isuue template→ custom template → 연필모양→ 이름지정 → content( 설명, 할일, 참조 ) → close preview하면 저장 됨 → propose changes → commit → issue template 디렉토리 생김
  5. 프로젝트 repo url을 복사합니다.
  6. local에 clone합니다.
  7. git flow init으로 develop 브랜치를 생성합니다. 
  8. 프로젝트를 set up합니다.( 파일 하나 만들고 실행 확인, add, commit)
  9. 처음 만든 브랜치에서 push하는 거니까 git push -u origin develop 해줍니다.
  10. 이 상태로 팀원들에게 오픈합니다.
  11. 팀원들을 초대할 때 triage를 선택합니다.
  12. 팀원이 pull request를 날리고 난 후
    1. comment를 씁니다.
    2. File changed 메뉴에서 코드를 확인하고 코드리뷰를 합니다.
    3. Finish your review버튼을 클릭하고 세 메뉴 중 하나를 선택합니다.
      1. comment - 단순 의견
      2. approve - 승인
      3. 마지막- 변경 사항 받아주기 전까지 안해주겠다. 
    4. merge pull request

 

 

 다음은 팀원이 해야 할 일입니다.

 

팀원이 해야 할일

  1. 팀장이 보낸 초대 메일을 확인하고 수락합니다.
  2. issues를 작성하여 내가 할 일을 미리 적어 놓습니다. ( 팀장이 만들어 놓은 템플릿 선택해서 쓰면 됩니다.)
  3. Fork 를 합니다. ( fork로 내가 안전하게 쓸 repo를 만듭니다. 간접적인 방식의 기여를 지향합니다.)
    1. copy the brancy only 체크를 해제합니다.
  4. 내 fork url을 local에 clone합니다. ( 내 권한이 된 저장소를 가지고 와서 일을 합니다. )
  5. git flow init을 하면 팀장이 만들어뒀던 것들이 나에게도 반영됩니다. (fork remote에?? develop브랜치가 없었는데 생김??)
  6. git remote -v로 현재 연결된 repo를 확인합니다. 
    1. origin이 내 fork remote repo일 것이다.
  7. 프로젝트 repo( organization의 repo) url을 복사합니다.
  8. git remote add upstream '복사한 url'을 합니다.
  9. 그러면 upstream은 팀의 remote repo를 의미합니다.
  10. 작업하기
    1. git flow feature start fb-gi-for
    2. fizzbuzz.py 수정합니다.
    3. add, commit을 반복하며 작업합니다.
    4. local의 develop에서 내 fork remote repo의 develop 으로 보내줍니다.
      1. git flow feature finish fb-fi-for
      2. git push -u origin develop (처음이라 혹시 몰라서  -u) 이 과정 전에 pull을 추천합니다!!
    5. 이것을 팀장한테 전달하여, 프로젝트 repo( organization의 repo)로 pull ?? 할 수 있게 합니다.
      1. 세가지 방법이 있습니다.
        1. Compare & pull request 누르기 <이거 선택>
        2. contrivute ??
        3. pull request 메뉴에서 New Pull Request 생성
      2. 나의 develop에서 팀의 develop으로 가는건지 확인합니다.
      3. Title과 내용을 적습니다.
      4. 내용 맨 밑에 [ resolve : 해결할때, fix : 고칠때, clost: 별다는 문제 아닐때 ] 중 하나를 선택하여 #이슈넘버를 넣으면 이슈해결 처리가 됩니다.
      5. 이렇게 하면 끝
    6. pull request를 날리니까 merge가 안된다고 떴을때 ( 다른 사람이 push한 것 때문에 충돌이 나기 때문)
      1. git pull upstream develop으로 프로젝트 repo의 변경사항을 로컬에 땡겨옵니다.
      2. CONFLICT 메시지가 뜨면서 당연히 충돌이 발생합니다. 로컬로 불러와서 해결하기 위함이었습니다.
      3. 메시지에 적힌 충돌이 발생한 파일로 들어가서 파일을 병합합니다.(수정합니다.)
      4. 수정한 파일을 저장하고 add, commit 해줍니다.
      5. 그 다음 git push origin develop를 날리면 pull request 보내는 버튼이 다시 활성화 됩니다.
  11. pull request를 보냈지만, 팀장 한테 승인이 되지 않고 수정하라고 떴을 때의 상황입니다. ( File changed에서 확인)
    1. 아직 pull request 가 open 상태입니다.
    2. 이 develop브랜치에서 바로 작업해도 된다. 추가작업은.. 그러나 브랜치 파는 것이 더 좋긴합니다.
    3. 파일을 수정하고 add, commit 합니다.
    4. 열려있는 pull request에서 push(git push origin develop)하면 열려있는 pr에 바로 반영됩니다..
    5. 이걸 팀장이 승인 해주면 끝

 

 

이렇게 협업할때의 기본적인 프로세스에 대해 실습해보았습니다. 

덕분에 깃을 통한 협업이 어떻게 이루어지는지 직접 해보며 배울 수 있었습니다.

 

'Git' 카테고리의 다른 글

[Git] 기본 브랜치를 main으로 변경하기  (0) 2022.12.16
[Git] Vim꾸미기  (0) 2022.09.17
[Git] Rename과 Revert  (0) 2022.09.16
[Git] Hexo를 통해 나만의 블로그 만들기  (0) 2022.09.16
[Git] Git flow 전략  (0) 2022.09.16