[Git] Git 협업 할 때 Clone,branch 생성 후 pull request 과정

hyewon jeong·2023년 1월 7일
4

GitHub

목록 보기
1/3
post-thumbnail

👍 1. 오픈소스 개발 참여를 위한 Git config(깃 설정)

GitHub ID/PW 캐싱데이터 삭제

  • 삭제해도 문제 없음
  • 목적 : 다른 github계정과 충돌 방지
 $git config --global --unset credential.helper
 $git config --system --unset credential.helper

내 GitHub 계정연결

  • 차후 소스코드 커밋파일에 저자정보에 기재된다.
$git config --global user.email "본인이메일주소"
$git config --global user.name "본인이름"

소스코드 수정할 기본 편집기 설정

  • 📢 이 부분은 추후 필요시 설정 , 아직 까지 이 설정은 생략한다.

  • 원하는 편집기 설정가능 : vim, emacs, nano, notepad등

git 설정 내용 확인

  • 수정을 원할 시 위의 명령어로 재입력 하면 덮어쓰기 된다.
$git config --list

👍 2. 오픈소스 참여 위한 GIT순서( 팀 협업)

1. Git branch 규칙

  • 팀원들과 함께 git branch 규칙을 먼저 정한 후 진행한다.

Git-flow

master : 제품으로 출시될 수 있는 브랜치
develop : 다음 출시 버전을 개발하는 브랜치
feature : 기능을 개발하는 브랜치
release : 이번 출시 버전을 준비하는 브랜치
hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

  1. 우리는 그 중 main - develop- feature 로 구성했다.

- feature : 각 기능별 구현하는 브랜치 ( 우리 팀의 경우 각기능을 분담하여 팀원들 각각 feature를 생성하여 진행했다.

예) 팀원1의 브랜치명 : feature/1-security
팀원1의 브랜치명 : feature/2-user
팀원1의 브랜치명 : feature/3-post
팀원1의 브랜치명 : feature/4-comment
팀원1의 브랜치명 : feature/5-like

  1. merge 하기 전 팀원 2명 이상에게 approve 받기
  2. Pull Request할 때,팀원들에게 공지해주기

🔑작업의 예) Git branch

main - develop- feature

  • 개인 작업은 꼭 feature 브랜치에서 하기
  • 모든 작업 시작 전 develop에서 Pull을 받은 후 → feature 브랜치에서 작업 시작
  • 개인 작업 마치면 feature브랜치로 pull request를 통해 develop에 머지하기
  • 프로젝트 완료 후 main으로 머지하기

1. 원격 저장소에서 내용을 로컬 저장소로 가져온다

  • 로컬 저장소가 없을 시 : $git clone 원격레포지토리 URL
  • 로컬 저장소가 이미 있을 시 : $git pull origin master

2. 로컬 저장소에서 작업할 브랜치를 생성 후 해당 브랜치로 이동한다.

$git branch 브랜치이름
$git checkout 브랜치 이름
위의 명령어를 한번에 치고 싶으면 :git checkout -b 브랜츠명

3. 브랜치 안에서 원하는 작업을 수행한다.

4. 브랜치에서 수행한 작업을 git에 올린다.

(작업 중인 브랜치 안에서 명령어 실행)
$git add .
$git commit -m "변경내용"
원격 저장소에 해당 브랜치가 이미 존재 할때 : $git push origin 
원격 저장소에 해당 브랜치가 없을 때 : $git push origin 브랜치이름 
예) $git push origin feature/3-user
 로컬repo(feature/3-user) -> 원격repo(feature/3-user) -> 원격repo(develop)로 PR -> 추후 merge 
  • 원격 저장소에 브랜치가 있으면 해당 브랜치 안에서 git push를 하면 바로 원격 저장소의 브랜치에 내용을 push 할 수 있다.

  • 원격 저장소에 브랜치가 없다면 git push만 했을 때, upstream이 없다는 오류가 나게 된다.
    원격 저장소에 브랜치 생성 후 브랜치 내용 push를 해줘야 한다.

5. github 홈페이지의 repository로 이동 후 pull request 요청을 하면 완료

6. 담당자가 확인 후 pull request를 수락하면 원격 저장소 develop에 브랜치의 내용이 업데이트 된다

👍 3. 이후 코드의 버전을 최신화

- 원격repo를 최신으로 동기화 시킨다.

  1. develop 브랜치에서 Pull 받는다.
    . 로컬 develop 브랜치로 이동후 원격저장소의 develop변경사항을 pull해준다.
(작업 중인 브랜치 안에서 명령어 실행)
$git checkout develop (상황에 따라 생략가능, 처음받아올때만 하고 그 후 하지 않기도 함)
(master 브랜치 안에서 명령어 실행)
$git pull origin develop
  • 브랜치를 생성해서 작업을 하는 동안 다른 협업자가 원격 저장소의 develop에 push를 진행해놓았을 수도 있다.
    그러므로 로컬의 develop 브랜치로 이동 후 develop의 내용을 제일 최신으로 업데이트해준다.
  1. develop 브랜치에서 개인 작업 브랜치 생성한다.
$git checkout -b 브랜치이름
  • 브랜치 이름 예시 )
    feature/작업이름
    (feature/create-post-entity),
    (feature/delete-post-entity)
  1. 작업한다.
  2. 내 작업물 상태를 확인한다.
$git status
  1. 작업물 상태 확인되면 깃에 추가한다.
$git add * (-> 전체 파일 추가) git
$git add [파일명] (-> 파일 개별로 하나씩 추가)

전체 추가일지 파일 개개별 추가는 자기 마음대로

$git commit -m "변경사항 "
  1. git push
$git push origin 브랜치명
  1. github 홈페이지의 repository로 이동 후 pull request 요청을 하면 완료

  2. 담당자가 확인 후 pull request를 수락하면 원격 저장소 develop 가 업데이트 된다.

  3. 확인 완료 후 merge되면 다시 develop 브랜치로 간다.
    다시 1번부터 9까지 반복하면 된다.

origin의 의미
origin이나 upstream은 remote repository에 붙이는 이름표같은거라고 생각하시면되요. 그런데 대부분의 튜토리얼들이 fork뜬 저장소는 origin으로, 원본 저장소는 upstream이라고 식별한걸 가정하고 진행되기때문에 미리 알아두시는게 좋구요

출처
fork이용한 협업
https://developer-eun-diary.tistory.com/m/42

참고
이슈발행하여하는 git 협업
Team Leader의 프로젝트 및 레포지토리 발행,팀원들 공유
당신이 (아마도) 몰랐던 20가지 Git 명령 🧙‍

profile
개발자꿈나무

0개의 댓글