GitHub를 통한 협업

개발자·2021년 3월 3일
0
post-thumbnail

👩‍💻 GitHub로 협업하기

💡 Git Flow

Git branch를 관리하는 전략

  • master : 배포용
  • develop : 개발용
  • branch의 역할에 따라 지정된 branch에서만 merge해야 한다.
  • develop branch에서 새 branch를 만들어 개발한다.(기능이나 개발자 별)

💡 GitHub

Project

작업 현황과 진행도를 볼 수 있는 메뉴.
PR들을 하나의 작업으로 구분해 어느 정도 진행되었는지 확인할 수 있다.
GitHub에서 자동화를 지원해 Issue나 PR의 진행률에 따라 자동으로 작업이 옮겨지게 할 수 있다.

Issue

기능, 버그 등 작업을 정리하는 단위.
자세하게 정리할 수록 더욱 체계화된 협업이 가능하다.
기능 branch를 Issue단위로 생성하는 것이 중요하다!

  • 프로젝트 어디에서든지 이슈번호를 언급할 수 있다.
  • 해당 Issue에서 해야하는 일을 작성할 수 있다.
  • Assignees를 통해 Issue의 책임자를 정할 수 있다.
  • Label을 통해 Issue를 분리할 수 있다.

Pull Request(PR)

merge하기 전 확인을 받는 절차.
팀원이나, 자동화 된 절차를 통해 확인받을 수 있다.
Reviewers를 통해 PR을 리뷰 할 팀원을 지정할 수 있다.

  • Comment : Review 작성.
  • Approve : Reviewr가 승인. merge해도 괜찮다는 의미.
  • Request changes : 승인 거부.

Actions

자동화 기능 제공.
ex) 자동화 과정을 통과해야만 merge할 수 있도록 설정할 수 있다.

💡 Git 사용법

로컬 저장소는 working directory(실제 작업 파일), Index(준비 영역), HEAD(최종 확정본)로 구성되어 있다.

저장소 생성

폴더를 생성한 후, 해당 폴더에서 아래 명령어를 실행한다.

git init

저장소 불러오기

  • 로컬 저장소 복제
git clone /경로
  • 원격 서버의 저장소 복제
git clone 사용자명@호스트:경로

commit

  • 변경 파일 인덱스에 추가
git add <파일이름>
git add *
  • 변경 내용 실제 반영
    => HEAD에 반영하는 것. 원격 저장소에 반영하는 것이 아니다.
git commit -m "커밋 메시지"

push

원격 저장소에 변경 내용 반영

git push origin [branch명]

이 때, 기존에 있던 원격 저장소를 복제한 것이 아니라면, 원격 저장소의 주소를 알려줘야 한다.

git remote add origin <원격 서버 주소>

branch

  • branch 생성
git checkout -b [branch명]
  • branch 이동
git checkout [branch명]
  • branch 삭제
git branch -d [branch명]
  • branch 원격 저장소로 전송
git push origin [branch명]

pull

로컬 저장소를 원격 저장소에 맞춰 갱신

git pull

merge

  • 원격 저장소의 변경 내용을 로컬 저장소에 fetch(받기) & merge(병합)
git pull
  • 다른 branch 변경 내용을 현재 branch에 병합
    로컬 저장소를 원격 저장소에 맞춰 갱신
git merge [branch명]

=> 이 과정에서 충돌이 발생할 수 있다. 충돌을 해결해 병합해야 한다.

  • 충돌해결 후 병합
git add [파일명]
  • 병합 전 비교
git diff [기존branch] [비교branch]

tag

새 버전을 배포할 때 tag를 달아놓으면 좋다.

git tag [태그명] [확정본식별자]
  • 확정본 식별자를 얻기 위한 코드
git log

되돌리기

로컬 저장소의 변경 내용을 변경 전 상태(HEAD)로 되돌려준다.
하지만, 이미 인덱스에 추가 된 내용과 새로 생성한 파일은 그대로 남는다.

git checkout -- [파일명]

참고

profile
log.info("공부 기록 블로9")

0개의 댓글