GitHub를 통한 협업
👩💻 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 -- [파일명]
참고
Author And Source
이 문제에 관하여(GitHub를 통한 협업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@minwest/GitHub를-통한-협업저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)